Index: ui/gl/scoped_binders.cc |
diff --git a/ui/gl/scoped_binders.cc b/ui/gl/scoped_binders.cc |
index bb2b290105622a9823b49b284d6bbd72aa6f36bc..0d6389a6b11c177e6d1704eb3c4a78b76e44757a 100644 |
--- a/ui/gl/scoped_binders.cc |
+++ b/ui/gl/scoped_binders.cc |
@@ -47,8 +47,11 @@ ScopedTextureBinder::ScopedTextureBinder(unsigned int target, unsigned int id) |
case GL_TEXTURE_EXTERNAL_OES: |
target_getter = GL_TEXTURE_BINDING_EXTERNAL_OES; |
break; |
+ case GL_TEXTURE_RECTANGLE_ARB: |
+ target_getter = GL_TEXTURE_BINDING_RECTANGLE_ARB; |
+ break; |
default: |
- NOTIMPLEMENTED() << "Target not part of OpenGL ES 2.0 spec."; |
+ NOTIMPLEMENTED() << " Target not supported."; |
} |
glGetIntegerv(target_getter, &old_id_); |
} |
@@ -65,4 +68,43 @@ ScopedTextureBinder::~ScopedTextureBinder() { |
} |
} |
+ScopedUseProgram::ScopedUseProgram(unsigned int program) : old_program_(-1) { |
+ glGetIntegerv(GL_CURRENT_PROGRAM, &old_program_); |
+ glUseProgram(program); |
+} |
+ |
+ScopedUseProgram::~ScopedUseProgram() { |
+ glUseProgram(old_program_); |
+} |
+ |
+ScopedEnableVertexAttribArray::ScopedEnableVertexAttribArray(unsigned int index) |
+ : enabled_(0), index_(index) { |
reveman
2015/10/29 22:08:04
s/0/GL_FALSE/
Daniele Castagna
2015/10/30 23:51:57
Done.
|
+ glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_ENABLED, &enabled_); |
+ glEnableVertexAttribArray(index); |
+} |
+ |
+ScopedEnableVertexAttribArray::~ScopedEnableVertexAttribArray() { |
+ if (!enabled_) { |
reveman
2015/10/29 22:08:04
if (enabled_ == GL_FALSE)
Daniele Castagna
2015/10/30 23:51:57
Done.
|
+ glDisableVertexAttribArray(index_); |
+ } |
+} |
+ |
+ScopedBufferBinder::ScopedBufferBinder(unsigned int target, unsigned int id) |
+ : target_(target), old_id_(-1) { |
+ GLenum target_getter = 0; |
+ switch (target) { |
+ case GL_ARRAY_BUFFER: |
+ target_getter = GL_ARRAY_BUFFER_BINDING; |
+ break; |
+ default: |
+ NOTIMPLEMENTED() << " Target not supported."; |
+ } |
+ glGetIntegerv(target_getter, &old_id_); |
+ glBindBuffer(target_, id); |
+} |
+ |
+ScopedBufferBinder::~ScopedBufferBinder() { |
+ glBindBuffer(target_, old_id_); |
+} |
+ |
} // namespace gfx |