Gabriele
Posting Freak
Messaggi: 4,364
Registrato: Oct 2010
Offline
|
#969
RE: Cosa stai codando ADESSO?
(12-02-2012 22:01)_tommo_ ha scritto: -l include nel linking, non nella compilazione. Devi includere anche i file che contengono la definizione delle funzioni 
btw, le funzioni OES di OpenGLES-iOS-1.1 sono cosiddette "OEM Extensions". Sono estensioni perchè non contenute in OpenGLES 1.1, ma Apple ha reputato che siano così importanti da doverci essere "di serie" (e a ragione).
Considerato che il buonsenso invece in casa google scarseggia parecchio, può essere che alcuni aggeggi implementano OpenGLES 1.1 liscia, e devi fare il check a runtime per vedere se supporta l'estensione che ti serve.
O altrimenti tagli fuori tipo tutto e imponi l'uso della 2.0 
mmm
quindi anche per android devo fare cosi?
Codice:
//
#ifndef _ANDROID_IPHONE_
glEnableVertexAttribArray=(PFNGLENABLEVERTEXATTRIBARRAYPROC)RENDERGetProcAddress("glEnableVertexAttribArray"); ERROR_LINE("APIRender::",glEnableVertexAttribArray)
glVertexAttribPointer=(PFNGLVERTEXATTRIBPOINTERPROC)RENDERGetProcAddress("glVertexAttribPointer"); ERROR_LINE("APIRender::",glVertexAttribPointer)
glGenBuffers=(PFNGLGENBUFFERSARBPROC)RENDERGetProcAddress("glGenBuffers"); ERROR_LINE("APIRender::",glGenBuffers)
glBindBuffer=(PFNGLBINDBUFFERARBPROC)RENDERGetProcAddress("glBindBuffer"); ERROR_LINE("APIRender::",glBindBuffer)
glBufferData=(PFNGLBUFFERDATAARBPROC)RENDERGetProcAddress("glBufferData"); ERROR_LINE("APIRender::",glBufferData)
glDeleteBuffers=(PFNGLDELETEBUFFERSARBPROC)RENDERGetProcAddress("glDeleteBuffers"); ERROR_LINE("APIRender::",glDeleteBuffers)
glBufferSubData=(PFNGLBUFFERSUBDATAARBPROC)RENDERGetProcAddress("glBufferSubData"); ERROR_LINE("APIRender::",glBufferSubData)
#ifndef __linux__
glActiveTexture=(PFNGLACTIVETEXTUREPROC)RENDERGetProcAddress("glActiveTexture");
glClientActiveTexture=(PFNGLCLIENTACTIVETEXTUREPROC)RENDERGetProcAddress("glClientActiveTexture");
glDrawRangeElements=(PFNGLDRAWRANGEELEMENTSEXTPROC)RENDERGetProcAddress("glDrawRangeElementsEXT");
//blend effect
glBlendEquation = (PFNGLBLENDEQUATIONPROC)RENDERGetProcAddress("glBlendEquation");
//vsync //wglGetProcAddress
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC) RENDERGetProcAddress("glSwapIntervalEXT");
if ( wglSwapIntervalEXT ) wglSwapIntervalEXT(0); //nVidia
#endif
glMapBuffer=(PFNGLMAPBUFFERARBPROC)RENDERGetProcAddress("glMapBuffer"); ERROR_LINE("APIRender::",glMapBuffer)
glUnmapBuffer=(PFNGLUNMAPBUFFERARBPROC)RENDERGetProcAddress("glUnmapBuffer"); ERROR_LINE("APIRender::",glUnmapBuffer)
//FBO
glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC) RENDERGetProcAddress("glGenFramebuffersEXT"); ERROR_LINE("APIRender::",glGenFramebuffersEXT)
glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC) RENDERGetProcAddress("glDeleteFramebuffersEXT"); ERROR_LINE("APIRender::",glDeleteFramebuffersEXT)
glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC) RENDERGetProcAddress("glBindFramebufferEXT"); ERROR_LINE("APIRender::",glBindFramebufferEXT)
glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) RENDERGetProcAddress("glFramebufferTexture2DEXT"); ERROR_LINE("APIRender::",glFramebufferTexture2DEXT)
glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)RENDERGetProcAddress("glCheckFramebufferStatusEXT"); ERROR_LINE("APIRender::",glCheckFramebufferStatusEXT)
//shader
glCreateShader=(PFNGLCREATESHADERPROC)RENDERGetProcAddress("glCreateShader"); ERROR_LINE("APIRender::",glCreateShader)
glDeleteShader=(PFNGLDELETESHADERPROC)RENDERGetProcAddress("glDeleteShader"); ERROR_LINE("APIRender::",glDeleteShader)
glShaderSource=(PFNGLSHADERSOURCEPROC)RENDERGetProcAddress("glShaderSource"); ERROR_LINE("APIRender::",glShaderSource)
glCompileShader=(PFNGLCOMPILESHADERPROC)RENDERGetProcAddress("glCompileShader"); ERROR_LINE("APIRender::",glCompileShader)
glCreateProgram=(PFNGLCREATEPROGRAMPROC)RENDERGetProcAddress("glCreateProgram"); ERROR_LINE("APIRender::",glCreateProgram)
glDeleteProgram=(PFNGLDELETEPROGRAMPROC)RENDERGetProcAddress("glDeleteProgram"); ERROR_LINE("APIRender::",glDeleteProgram)
glAttachShader=(PFNGLATTACHSHADERPROC)RENDERGetProcAddress("glAttachShader"); ERROR_LINE("APIRender::",glAttachShader)
glDetachShader=(PFNGLDETACHSHADERPROC)RENDERGetProcAddress("glDetachShader"); ERROR_LINE("APIRender::",glDetachShader)
glLinkProgram=(PFNGLLINKPROGRAMPROC)RENDERGetProcAddress("glLinkProgram"); ERROR_LINE("APIRender::",glLinkProgram)
glUseProgram=(PFNGLUSEPROGRAMPROC)RENDERGetProcAddress("glUseProgram");
glGetUniformLocation=(PFNGLGETUNIFORMLOCATIONPROC)RENDERGetProcAddress("glGetUniformLocation"); ERROR_LINE("APIRender::",glGetUniformLocation)
glBindAttribLocation=(PFNGLBINDATTRIBLOCATIONPROC)RENDERGetProcAddress("glBindAttribLocation"); ERROR_LINE("APIRender::",glBindAttribLocation)
glUniform1f=(PFNGLUNIFORM1FPROC)RENDERGetProcAddress("glUniform1f"); ERROR_LINE("APIRender::",glUniform1f)
glUniform2f=(PFNGLUNIFORM2FPROC)RENDERGetProcAddress("glUniform2f"); ERROR_LINE("APIRender::",glUniform2f)
glUniform3f=(PFNGLUNIFORM3FPROC)RENDERGetProcAddress("glUniform3f"); ERROR_LINE("APIRender::",glUniform3f)
glUniform4f=(PFNGLUNIFORM4FPROC)RENDERGetProcAddress("glUniform4f"); ERROR_LINE("APIRender::",glUniform4f)
glUniform1i=(PFNGLUNIFORM1IPROC)RENDERGetProcAddress("glUniform1i"); ERROR_LINE("APIRender::",glUniform1i)
glUniform4ui=(PFNGLUNIFORM4UIPROC)RENDERGetProcAddress("glUniform4ui"); ERROR_LINE("APIRender::",glUniform4ui)
glUniform4uiv=(PFNGLUNIFORM4UIVPROC)RENDERGetProcAddress("glUniform4uiv"); ERROR_LINE("APIRender::",glUniform4uiv)
glUniform4fv=(PFNGLUNIFORM4FVPROC)RENDERGetProcAddress("glUniform4fv"); ERROR_LINE("APIRender::",glUniform4fv)
glUniformMatrix4fv=(PFNGLUNIFORMMATRIX4FVPROC)RENDERGetProcAddress("glUniformMatrix4fv"); ERROR_LINE("APIRender::",glUniformMatrix4fv)
//log compilatore shader
glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)RENDERGetProcAddress("glGetShaderInfoLog"); ERROR_LINE("APIRender::",glGetShaderInfoLog)
glGetShaderiv = (PFNGLGETSHADERIVPROC)RENDERGetProcAddress("glGetShaderiv"); ERROR_LINE("APIRender::",glGetShaderiv)
glGetProgramiv = (PFNGLGETPROGRAMIVPROC)RENDERGetProcAddress("glGetProgramiv"); ERROR_LINE("APIRender::",glGetProgramiv)
glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)RENDERGetProcAddress("glGetProgramInfoLog"); ERROR_LINE("APIRender::",glGetProgramInfoLog)
glEnableClientState( GL_VERTEX_ARRAY );
glEnableClientState( GL_TEXTURE_COORD_ARRAY );
//glEnableClientState( GL_NORMAL_ARRAY );
#else
#endif
oh va beh in tal caso poco male
Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 12-02-2012 22:09 da Gabriele.)
|
|