mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Merge pull request #296 from chinmaygarde/mac_bindings
Add bindings for "GL_NV_texture_barrier" required on Mac
This commit is contained in:
commit
0fc7d8e96b
@ -997,6 +997,10 @@ GL_FUNCTIONS = [
|
||||
# 'GLenum target, GLint level, GLint xoffset, GLint yoffset, '
|
||||
# 'GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, '
|
||||
# 'GLenum format, GLenum type, const void* pixels', },
|
||||
{ 'return_type': 'void',
|
||||
'versions': [{ 'name': 'glTextureBarrierNV',
|
||||
'extensions': ['GL_NV_texture_barrier'] }],
|
||||
'arguments': 'void' },
|
||||
{ 'return_type': 'void',
|
||||
'versions': [{ 'name': 'glTransformFeedbackVaryings' }],
|
||||
'arguments': 'GLuint program, GLsizei count, const char* const* varyings, '
|
||||
|
||||
@ -619,6 +619,7 @@ void glTexSubImage2DFn(GLenum target,
|
||||
GLenum format,
|
||||
GLenum type,
|
||||
const void* pixels) override;
|
||||
void glTextureBarrierNVFn(void) override;
|
||||
void glTransformFeedbackVaryingsFn(GLuint program,
|
||||
GLsizei count,
|
||||
const char* const* varyings,
|
||||
|
||||
@ -354,6 +354,7 @@ void DriverGL::InitializeStaticBindings() {
|
||||
fn.glTexStorage3DFn = 0;
|
||||
fn.glTexSubImage2DFn = reinterpret_cast<glTexSubImage2DProc>(
|
||||
GetGLProcAddress("glTexSubImage2D"));
|
||||
fn.glTextureBarrierNVFn = 0;
|
||||
fn.glTransformFeedbackVaryingsFn = 0;
|
||||
fn.glUniform1fFn =
|
||||
reinterpret_cast<glUniform1fProc>(GetGLProcAddress("glUniform1f"));
|
||||
@ -530,6 +531,8 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
|
||||
ext.b_GL_NV_fence = extensions.find("GL_NV_fence ") != std::string::npos;
|
||||
ext.b_GL_NV_path_rendering =
|
||||
extensions.find("GL_NV_path_rendering ") != std::string::npos;
|
||||
ext.b_GL_NV_texture_barrier =
|
||||
extensions.find("GL_NV_texture_barrier ") != std::string::npos;
|
||||
ext.b_GL_OES_EGL_image =
|
||||
extensions.find("GL_OES_EGL_image ") != std::string::npos;
|
||||
ext.b_GL_OES_get_program_binary =
|
||||
@ -1879,6 +1882,13 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
|
||||
DCHECK(fn.glTexStorage3DFn);
|
||||
}
|
||||
|
||||
debug_fn.glTextureBarrierNVFn = 0;
|
||||
if (ext.b_GL_NV_texture_barrier) {
|
||||
fn.glTextureBarrierNVFn = reinterpret_cast<glTextureBarrierNVProc>(
|
||||
GetGLProcAddress("glTextureBarrierNV"));
|
||||
DCHECK(fn.glTextureBarrierNVFn);
|
||||
}
|
||||
|
||||
debug_fn.glTransformFeedbackVaryingsFn = 0;
|
||||
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
|
||||
fn.glTransformFeedbackVaryingsFn =
|
||||
@ -4403,6 +4413,13 @@ static void GL_BINDING_CALL Debug_glTexSubImage2D(GLenum target,
|
||||
height, format, type, pixels);
|
||||
}
|
||||
|
||||
static void GL_BINDING_CALL Debug_glTextureBarrierNV(void) {
|
||||
GL_SERVICE_LOG("glTextureBarrierNV"
|
||||
<< "("
|
||||
<< ")");
|
||||
g_driver_gl.debug_fn.glTextureBarrierNVFn();
|
||||
}
|
||||
|
||||
static void GL_BINDING_CALL
|
||||
Debug_glTransformFeedbackVaryings(GLuint program,
|
||||
GLsizei count,
|
||||
@ -5888,6 +5905,10 @@ void DriverGL::InitializeDebugBindings() {
|
||||
debug_fn.glTexSubImage2DFn = fn.glTexSubImage2DFn;
|
||||
fn.glTexSubImage2DFn = Debug_glTexSubImage2D;
|
||||
}
|
||||
if (!debug_fn.glTextureBarrierNVFn) {
|
||||
debug_fn.glTextureBarrierNVFn = fn.glTextureBarrierNVFn;
|
||||
fn.glTextureBarrierNVFn = Debug_glTextureBarrierNV;
|
||||
}
|
||||
if (!debug_fn.glTransformFeedbackVaryingsFn) {
|
||||
debug_fn.glTransformFeedbackVaryingsFn = fn.glTransformFeedbackVaryingsFn;
|
||||
fn.glTransformFeedbackVaryingsFn = Debug_glTransformFeedbackVaryings;
|
||||
@ -7501,6 +7522,10 @@ void GLApiBase::glTexSubImage2DFn(GLenum target,
|
||||
format, type, pixels);
|
||||
}
|
||||
|
||||
void GLApiBase::glTextureBarrierNVFn(void) {
|
||||
driver_->fn.glTextureBarrierNVFn();
|
||||
}
|
||||
|
||||
void GLApiBase::glTransformFeedbackVaryingsFn(GLuint program,
|
||||
GLsizei count,
|
||||
const char* const* varyings,
|
||||
@ -9457,6 +9482,11 @@ void TraceGLApi::glTexSubImage2DFn(GLenum target,
|
||||
format, type, pixels);
|
||||
}
|
||||
|
||||
void TraceGLApi::glTextureBarrierNVFn(void) {
|
||||
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTextureBarrierNV")
|
||||
gl_api_->glTextureBarrierNVFn();
|
||||
}
|
||||
|
||||
void TraceGLApi::glTransformFeedbackVaryingsFn(GLuint program,
|
||||
GLsizei count,
|
||||
const char* const* varyings,
|
||||
@ -11729,6 +11759,13 @@ void NoContextGLApi::glTexSubImage2DFn(GLenum target,
|
||||
LOG(ERROR) << "Trying to call glTexSubImage2D() without current GL context";
|
||||
}
|
||||
|
||||
void NoContextGLApi::glTextureBarrierNVFn(void) {
|
||||
NOTREACHED()
|
||||
<< "Trying to call glTextureBarrierNV() without current GL context";
|
||||
LOG(ERROR)
|
||||
<< "Trying to call glTextureBarrierNV() without current GL context";
|
||||
}
|
||||
|
||||
void NoContextGLApi::glTransformFeedbackVaryingsFn(GLuint program,
|
||||
GLsizei count,
|
||||
const char* const* varyings,
|
||||
|
||||
@ -740,6 +740,7 @@ typedef void(GL_BINDING_CALL* glTexSubImage2DProc)(GLenum target,
|
||||
GLenum format,
|
||||
GLenum type,
|
||||
const void* pixels);
|
||||
typedef void(GL_BINDING_CALL* glTextureBarrierNVProc)(void);
|
||||
typedef void(GL_BINDING_CALL* glTransformFeedbackVaryingsProc)(
|
||||
GLuint program,
|
||||
GLsizei count,
|
||||
@ -960,6 +961,7 @@ struct ExtensionsGL {
|
||||
bool b_GL_NV_blend_equation_advanced;
|
||||
bool b_GL_NV_fence;
|
||||
bool b_GL_NV_path_rendering;
|
||||
bool b_GL_NV_texture_barrier;
|
||||
bool b_GL_OES_EGL_image;
|
||||
bool b_GL_OES_get_program_binary;
|
||||
bool b_GL_OES_mapbuffer;
|
||||
@ -1212,6 +1214,7 @@ struct ProcsGL {
|
||||
glTexStorage2DEXTProc glTexStorage2DEXTFn;
|
||||
glTexStorage3DProc glTexStorage3DFn;
|
||||
glTexSubImage2DProc glTexSubImage2DFn;
|
||||
glTextureBarrierNVProc glTextureBarrierNVFn;
|
||||
glTransformFeedbackVaryingsProc glTransformFeedbackVaryingsFn;
|
||||
glUniform1fProc glUniform1fFn;
|
||||
glUniform1fvProc glUniform1fvFn;
|
||||
@ -1911,6 +1914,7 @@ class GL_EXPORT GLApi {
|
||||
GLenum format,
|
||||
GLenum type,
|
||||
const void* pixels) = 0;
|
||||
virtual void glTextureBarrierNVFn(void) = 0;
|
||||
virtual void glTransformFeedbackVaryingsFn(GLuint program,
|
||||
GLsizei count,
|
||||
const char* const* varyings,
|
||||
@ -2383,6 +2387,7 @@ class GL_EXPORT GLApi {
|
||||
#define glTexStorage2DEXT ::gfx::g_current_gl_context->glTexStorage2DEXTFn
|
||||
#define glTexStorage3D ::gfx::g_current_gl_context->glTexStorage3DFn
|
||||
#define glTexSubImage2D ::gfx::g_current_gl_context->glTexSubImage2DFn
|
||||
#define glTextureBarrierNV ::gfx::g_current_gl_context->glTextureBarrierNVFn
|
||||
#define glTransformFeedbackVaryings \
|
||||
::gfx::g_current_gl_context->glTransformFeedbackVaryingsFn
|
||||
#define glUniform1f ::gfx::g_current_gl_context->glUniform1fFn
|
||||
|
||||
@ -2202,6 +2202,11 @@ void GL_BINDING_CALL MockGLInterface::Mock_glTexSubImage2D(GLenum target,
|
||||
format, type, pixels);
|
||||
}
|
||||
|
||||
void GL_BINDING_CALL MockGLInterface::Mock_glTextureBarrierNV(void) {
|
||||
MakeFunctionUnique("glTextureBarrierNV");
|
||||
interface_->TextureBarrierNV();
|
||||
}
|
||||
|
||||
void GL_BINDING_CALL
|
||||
MockGLInterface::Mock_glTransformFeedbackVaryings(GLuint program,
|
||||
GLsizei count,
|
||||
@ -3230,6 +3235,8 @@ void* GL_BINDING_CALL MockGLInterface::GetGLProcAddress(const char* name) {
|
||||
return reinterpret_cast<void*>(Mock_glTexStorage3D);
|
||||
if (strcmp(name, "glTexSubImage2D") == 0)
|
||||
return reinterpret_cast<void*>(Mock_glTexSubImage2D);
|
||||
if (strcmp(name, "glTextureBarrierNV") == 0)
|
||||
return reinterpret_cast<void*>(Mock_glTextureBarrierNV);
|
||||
if (strcmp(name, "glTransformFeedbackVaryings") == 0)
|
||||
return reinterpret_cast<void*>(Mock_glTransformFeedbackVaryings);
|
||||
if (strcmp(name, "glUniform1f") == 0)
|
||||
|
||||
@ -842,6 +842,7 @@ static void GL_BINDING_CALL Mock_glTexSubImage2D(GLenum target,
|
||||
GLenum format,
|
||||
GLenum type,
|
||||
const void* pixels);
|
||||
static void GL_BINDING_CALL Mock_glTextureBarrierNV(void);
|
||||
static void GL_BINDING_CALL
|
||||
Mock_glTransformFeedbackVaryings(GLuint program,
|
||||
GLsizei count,
|
||||
|
||||
@ -699,6 +699,10 @@ GLvoid StubGLObjectLabel(GLenum identifier, GLuint name, GLsizei length,
|
||||
glObjectLabelKHR(identifier, name, length, label);
|
||||
}
|
||||
|
||||
GLvoid StubTextureBarrier(void) {
|
||||
glTextureBarrierNV();
|
||||
}
|
||||
|
||||
} // extern "C"
|
||||
} // namespace
|
||||
|
||||
@ -898,6 +902,7 @@ GrGLInterface* CreateInProcessSkiaGLBinding() {
|
||||
functions->fPushDebugGroup = StubGLPushDebugGroup;
|
||||
functions->fPopDebugGroup = StubGLPopDebugGroup;
|
||||
functions->fObjectLabel = StubGLObjectLabel;
|
||||
functions->fTextureBarrier = StubTextureBarrier;
|
||||
|
||||
return interface;
|
||||
}
|
||||
|
||||
@ -625,6 +625,7 @@ MOCK_METHOD9(TexSubImage2D,
|
||||
GLenum format,
|
||||
GLenum type,
|
||||
const void* pixels));
|
||||
MOCK_METHOD0(TextureBarrierNV, void());
|
||||
MOCK_METHOD4(TransformFeedbackVaryings,
|
||||
void(GLuint program,
|
||||
GLsizei count,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user