зеркало из https://github.com/mozilla/moz-skia.git
Add glDrawBuffer(s) to GrGLInterface
Review URL: http://codereview.appspot.com/4841046/ git-svn-id: http://skia.googlecode.com/svn/trunk@2032 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
Родитель
901aea5a6c
Коммит
d32c5f564e
|
@ -111,6 +111,8 @@ extern "C" {
|
|||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDisableClientStateProc)(GrGLenum array);
|
||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDisableVertexAttribArrayProc)(GrGLuint index);
|
||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDrawArraysProc)(GrGLenum mode, GrGLint first, GrGLsizei count);
|
||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDrawBufferProc)(GrGLenum mode);
|
||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDrawBuffersProc)(GrGLsizei n, const GrGLenum* bufs);
|
||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDrawElementsProc)(GrGLenum mode, GrGLsizei count, GrGLenum type, const GrGLvoid* indices);
|
||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLEnableProc)(GrGLenum cap);
|
||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLEnableClientStateProc)(GrGLenum cap);
|
||||
|
@ -264,6 +266,8 @@ struct GrGLInterface {
|
|||
GrGLDisableClientStateProc fDisableClientState;
|
||||
GrGLDisableVertexAttribArrayProc fDisableVertexAttribArray;
|
||||
GrGLDrawArraysProc fDrawArrays;
|
||||
GrGLDrawBufferProc fDrawBuffer;
|
||||
GrGLDrawBuffersProc fDrawBuffers;
|
||||
GrGLDrawElementsProc fDrawElements;
|
||||
GrGLEnableProc fEnable;
|
||||
GrGLEnableClientStateProc fEnableClientState;
|
||||
|
|
|
@ -286,6 +286,12 @@ bool GrGLInterface::validate(GrEngine engine) const {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
if (major >= 2 ||
|
||||
has_gl_extension_from_string("GL_ARB_draw_buffers", ext)) {
|
||||
if (NULL == fDrawBuffers) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (1 < major || (1 == major && 4 <= minor) ||
|
||||
has_gl_extension_from_string("GL_EXT_blend_color", ext)) {
|
||||
if (NULL == fBlendColor) {
|
||||
|
@ -303,10 +309,11 @@ bool GrGLInterface::validate(GrEngine engine) const {
|
|||
}
|
||||
}
|
||||
|
||||
// part of desktop GL
|
||||
// part of desktop GL, but not ES
|
||||
if (kDesktop_GrGLBinding == fBindingsExported &&
|
||||
(NULL == fLineWidth ||
|
||||
NULL == fGetTexLevelParameteriv)) {
|
||||
NULL == fGetTexLevelParameteriv ||
|
||||
NULL == fDrawBuffer)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -52,6 +52,8 @@ void GrGLSetDefaultGLInterface() {
|
|||
NULL, // glDisableClientState
|
||||
glDisableVertexAttribArray,
|
||||
glDrawArrays,
|
||||
NULL, // glDrawBuffer
|
||||
NULL, // glDrawBuffers
|
||||
glDrawElements,
|
||||
glEnable,
|
||||
NULL, // glEnableClientState
|
||||
|
|
|
@ -51,6 +51,8 @@ void GrGLSetDefaultGLInterface() {
|
|||
gDefaultInterface.fDisableVertexAttribArray =
|
||||
glDisableVertexAttribArray;
|
||||
gDefaultInterface.fDrawArrays = glDrawArrays;
|
||||
gDefaultInterface.fDrawBuffer = glDrawBuffer;
|
||||
gDefaultInterface.fDrawBuffers = glDrawBuffers;
|
||||
gDefaultInterface.fDrawElements = glDrawElements;
|
||||
gDefaultInterface.fEnable = glEnable;
|
||||
gDefaultInterface.fEnableClientState = glEnableClientState;
|
||||
|
|
|
@ -65,6 +65,8 @@ void GrGLSetDefaultGLInterface() {
|
|||
gDefaultInterface.fDisableClientState = glDisableClientState;
|
||||
GR_GL_GET_PROC(DisableVertexAttribArray);
|
||||
gDefaultInterface.fDrawArrays = glDrawArrays;
|
||||
gDefaultInterface.fDrawBuffer = glDrawBuffer;
|
||||
GR_GL_GET_PROC(DrawBuffers);
|
||||
gDefaultInterface.fDrawElements = glDrawElements;
|
||||
gDefaultInterface.fEnable = glEnable;
|
||||
gDefaultInterface.fEnableClientState = glEnableClientState;
|
||||
|
|
|
@ -67,6 +67,8 @@ void GrGLSetDefaultGLInterface() {
|
|||
gDefaultInterface.fDisableClientState = glDisableClientState;
|
||||
GR_GL_GET_PROC(DisableVertexAttribArray);
|
||||
gDefaultInterface.fDrawArrays = glDrawArrays;
|
||||
gDefaultInterface.fDrawBuffer = glDrawBuffer;
|
||||
GR_GL_GET_PROC(DrawBuffers);
|
||||
gDefaultInterface.fDrawElements = glDrawElements;
|
||||
gDefaultInterface.fEnable = glEnable;
|
||||
gDefaultInterface.fEnableClientState = glEnableClientState;
|
||||
|
|
|
@ -57,6 +57,7 @@ void GrGLSetDefaultGLInterface() {
|
|||
gDefaultInterface.fDisable = glDisable;
|
||||
gDefaultInterface.fDisableClientState = glDisableClientState;
|
||||
gDefaultInterface.fDrawArrays = glDrawArrays;
|
||||
gDefaultInterface.fDrawBuffer = glDrawBuffer;
|
||||
gDefaultInterface.fDrawElements = glDrawElements;
|
||||
gDefaultInterface.fEnable = glEnable;
|
||||
gDefaultInterface.fEnableClientState = glEnableClientState;
|
||||
|
@ -102,6 +103,7 @@ void GrGLSetDefaultGLInterface() {
|
|||
GR_GL_GET_PROC(DeleteProgram);
|
||||
GR_GL_GET_PROC(DeleteShader);
|
||||
GR_GL_GET_PROC(DisableVertexAttribArray);
|
||||
GR_GL_GET_PROC(DrawBuffers);
|
||||
GR_GL_GET_PROC(EnableVertexAttribArray);
|
||||
GR_GL_GET_PROC(GenBuffers);
|
||||
GR_GL_GET_PROC(GetBufferParameteriv);
|
||||
|
|
Загрузка…
Ссылка в новой задаче