X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fnogl%2FnoGLES1.inc;h=9aa878324dc0159081663f9e56c145e962fdb628;hb=26f953e608c57414593e6c1168b8340751d41f91;hp=a4c6589293b5299caae67450658a663e3330134c;hpb=92c7868df227201d6914f9f07c9a29ba0e2863cb;p=d2df-sdl.git diff --git a/src/nogl/noGLES1.inc b/src/nogl/noGLES1.inc index a4c6589..9aa8783 100644 --- a/src/nogl/noGLES1.inc +++ b/src/nogl/noGLES1.inc @@ -28,6 +28,9 @@ implementation var cmds: TCmds; + var + extList: string = ''; + var es_glVertexPointer: procedure (size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); cdecl; es_glColorPointer: procedure (size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); cdecl; @@ -35,8 +38,8 @@ implementation es_glEnableClientState: procedure (arr: GLenum); cdecl; es_glDisableClientState: procedure (arr: GLenum); cdecl; es_glDrawArrays: procedure (mode: GLenum; first: GLint; count: GLsizei); cdecl; - es_glActiveTexture: procedure(texture: GLenum); cdecl; - es_glClientActiveTexture: procedure(texture: GLenum); cdecl; +// es_glActiveTexture: procedure(texture: GLenum); cdecl; +// es_glClientActiveTexture: procedure(texture: GLenum); cdecl; es_glColor4f: procedure(red, green, blue, alpha: GLfloat); cdecl; es_glEnable: procedure (cap: GLenum); cdecl; @@ -80,6 +83,18 @@ implementation es_glTexSubImage2D: procedure (target: GLenum; level: GLint; xoffset, yoffset: GLint; width, height: GLsizei; format, _type: GLenum; pixels: PGLvoid); cdecl; es_glDeleteTextures: procedure (n: GLsizei; textures: PGLuint); cdecl; + es_glGenFramebuffers: procedure (n: GLsizei; framebuffers: PGLuint); cdecl; + es_glBindFramebuffer: procedure (target: GLenum; framebuffer: GLuint); cdecl; + es_glFramebufferTexture2D: procedure (target, attachment, textarget: GLenum; texture: GLuint; level: GLint); cdecl; + es_glFramebufferRenderbuffer: procedure (target, attachment, rbotarget: GLenum; rbo: GLuint); cdecl; + es_glCheckFramebufferStatus: function (framebuffer: GLuint): GLenum; cdecl; + es_glDeleteFramebuffers: procedure (n: GLsizei; const framebuffers: PGLuint); cdecl; + + es_glGenRenderbuffers: procedure (n: GLsizei; framebuffers: PGLuint); cdecl; + es_glBindRenderbuffer: procedure (target: GLenum; renderbuffer: GLuint); cdecl; + es_glRenderbufferStorage: procedure (target, internalformat: GLenum; w, h: GLsizei); cdecl; + es_glDeleteRenderbuffers: procedure (n: GLsizei; const renderbuffers: PGLuint); cdecl; + procedure glEnable(cap: GLenum); begin es_glEnable(cap); @@ -160,7 +175,6 @@ implementation end; procedure glEnd; - var count: Integer; begin assert(cmds.mode <> GL_INVALID_ENUM); assert(Length(cmds.v) mod ValPerVertex = 0); @@ -406,6 +420,62 @@ implementation + + procedure glGenFramebuffers(n: GLsizei; framebuffers: PGLuint); + begin + es_glGenFramebuffers(n, framebuffers); + end; + + procedure glBindFramebuffer(target: GLenum; framebuffer: GLuint); + begin + es_glBindFramebuffer(target, framebuffer); + end; + + procedure glFramebufferTexture2D(target, attachment, textarget: GLenum; texture: GLuint; level: GLint); + begin + es_glFramebufferTexture2D(target, attachment, textarget, texture, level); + end; + + procedure glFramebufferRenderbuffer(target, attachment, rbotarget: GLenum; rbo: GLuint); + begin + es_glFramebufferRenderbuffer(target, attachment, rbotarget, rbo); + end; + + function glCheckFramebufferStatus(framebuffer: GLuint): GLenum; + begin + result := es_glCheckFramebufferStatus(framebuffer); + end; + + procedure glDeleteFramebuffers(n: GLsizei; const framebuffers: PGLuint); + begin + es_glDeleteFramebuffers(n, framebuffers); + end; + + procedure glGenRenderbuffers(n: GLsizei; renderbuffers: PGLuint); + begin + es_glGenRenderbuffers(n, renderbuffers); + end; + + procedure glBindRenderbuffer(target: GLenum; renderbuffer: GLuint); + begin + es_glBindRenderbuffer(target, renderbuffer); + end; + + procedure glRenderbufferStorage(target, internalformat: GLenum; w, h: GLsizei); + begin + es_glRenderbufferStorage(target, internalformat, w, h); + end; + + procedure glDeleteRenderbuffers(n: GLsizei; const renderbuffers: PGLuint); + begin + es_glDeleteRenderbuffers(n, renderbuffers); + end; + + + + + + procedure nogl_Init; begin es_glVertexPointer := SDL_GL_GetProcAddress('glVertexPointer'); @@ -414,8 +484,8 @@ implementation es_glEnableClientState := SDL_GL_GetProcAddress('glEnableClientState'); es_glDisableClientState := SDL_GL_GetProcAddress('glDisableClientState'); es_glDrawArrays := SDL_GL_GetProcAddress('glDrawArrays'); - es_glActiveTexture := SDL_GL_GetProcAddress('glActiveTexture'); - es_glClientActiveTexture := SDL_GL_GetProcAddress('glClientActiveTexture'); +// es_glActiveTexture := SDL_GL_GetProcAddress('glActiveTexture'); +// es_glClientActiveTexture := SDL_GL_GetProcAddress('glClientActiveTexture'); es_glColor4f := SDL_GL_GetProcAddress('glColor4f'); es_glEnable := SDL_GL_GetProcAddress('glEnable'); @@ -459,6 +529,18 @@ implementation es_glTexSubImage2D := SDL_GL_GetProcAddress('glTexSubImage2D'); es_glDeleteTextures := SDL_GL_GetProcAddress('glDeleteTextures'); + es_glGenFramebuffers := SDL_GL_GetProcAddress('glGenFramebuffersOES'); + es_glBindFramebuffer := SDL_GL_GetProcAddress('glBindFramebufferOES'); + es_glFramebufferTexture2D := SDL_GL_GetProcAddress('glFramebufferTexture2DOES');; + es_glFramebufferRenderbuffer := SDL_GL_GetProcAddress('glFramebufferRenderbufferOES'); + es_glCheckFramebufferStatus := SDL_GL_GetProcAddress('glCheckFramebufferStatusOES'); + es_glDeleteFramebuffers := SDL_GL_GetProcAddress('glDeleteFramebuffersOES'); + + es_glGenRenderbuffers := SDL_GL_GetProcAddress('glGenRenderbuffersOES'); + es_glBindRenderbuffer := SDL_GL_GetProcAddress('glBindRenderbufferOES'); + es_glRenderbufferStorage := SDL_GL_GetProcAddress('glRenderbufferStorageOES'); + es_glDeleteRenderbuffers := SDL_GL_GetProcAddress('glDeleteRenderbuffersOES'); + cmds.mode := GL_INVALID_ENUM end; @@ -470,8 +552,8 @@ implementation es_glEnableClientState := nil; es_glDisableClientState := nil; es_glDrawArrays := nil; - es_glActiveTexture := nil; - es_glClientActiveTexture := nil; +// es_glActiveTexture := nil; +// es_glClientActiveTexture := nil; es_glColor4f := nil; es_glEnable := nil; @@ -514,6 +596,25 @@ implementation es_glTexImage2D := nil; es_glTexSubImage2D := nil; es_glDeleteTextures := nil; + + es_glGenFramebuffers := nil; + es_glBindFramebuffer := nil; + es_glFramebufferTexture2D := nil; + es_glFramebufferRenderbuffer := nil; + es_glCheckFramebufferStatus := nil; + es_glDeleteFramebuffers := nil; + + es_glGenRenderbuffers := nil; + es_glBindRenderbuffer := nil; + es_glRenderbufferStorage := nil; + es_glDeleteRenderbuffers := nil; + end; + + function nogl_ExtensionSupported(ext: string): Boolean; + begin + if (extList = '') and Assigned(es_glGetString) then + extList := glGetString(GL_EXTENSIONS); + result := pos(ext, extList) <> 0; end; initialization