Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder.cc

Issue 660229: "/b/slave/chromium-rel-linux/build/src/gpu/command_buffer/client/gles2_demo_c... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
===================================================================
--- gpu/command_buffer/service/gles2_cmd_decoder.cc (revision 40197)
+++ gpu/command_buffer/service/gles2_cmd_decoder.cc (working copy)
@@ -103,6 +103,53 @@
#undef GLES2_CMD_OP
};
+namespace GLErrorBit {
+enum GLErrorBit {
+ kNoError = 0,
+ kInvalidEnum = (1 << 0),
+ kInvalidValue = (1 << 1),
+ kInvalidOperation = (1 << 2),
+ kOutOfMemory = (1 << 3),
+ kInvalidFrameBufferOperation = (1 << 4),
+};
+}
+
+uint32 GLErrorToErrorBit(GLenum error) {
+ switch (error) {
+ case GL_INVALID_ENUM:
+ return GLErrorBit::kInvalidEnum;
+ case GL_INVALID_VALUE:
+ return GLErrorBit::kInvalidValue;
+ case GL_INVALID_OPERATION:
+ return GLErrorBit::kInvalidOperation;
+ case GL_OUT_OF_MEMORY:
+ return GLErrorBit::kOutOfMemory;
+ case GL_INVALID_FRAMEBUFFER_OPERATION:
+ return GLErrorBit::kInvalidFrameBufferOperation;
+ default:
+ DCHECK(false);
+ return GLErrorBit::kNoError;
+ }
+}
+
+GLenum GLErrorBitToGLError(uint32 error_bit) {
+ switch (error_bit) {
+ case GLErrorBit::kInvalidEnum:
+ return GL_INVALID_ENUM;
+ case GLErrorBit::kInvalidValue:
+ return GL_INVALID_VALUE;
+ case GLErrorBit::kInvalidOperation:
+ return GL_INVALID_OPERATION;
+ case GLErrorBit::kOutOfMemory:
+ return GL_OUT_OF_MEMORY;
+ case GLErrorBit::kInvalidFrameBufferOperation:
+ return GL_INVALID_FRAMEBUFFER_OPERATION;
+ default:
+ DCHECK(false);
+ return GL_NO_ERROR;
+ }
+}
+
// } // anonymous namespace.
GLES2Decoder::GLES2Decoder(ContextGroup* group)
@@ -441,9 +488,6 @@
// Wrapper for glGenerateMipmap
void DoGenerateMipmap(GLenum target);
- // Wrapper for glGetShaderiv
- void DoGetShaderiv(GLuint shader, GLenum pname, GLint* params);
-
// Wrapper for glGetShaderSource.
void DoGetShaderSource(
GLuint shader, GLsizei bufsize, GLsizei* length, char* dst);
@@ -1758,7 +1802,7 @@
if (error == GL_NO_ERROR && error_bits_ != 0) {
for (uint32 mask = 1; mask != 0; mask = mask << 1) {
if ((error_bits_ & mask) != 0) {
- error = GLES2Util::GLErrorBitToGLError(mask);
+ error = GLErrorBitToGLError(mask);
break;
}
}
@@ -1766,13 +1810,13 @@
if (error != GL_NO_ERROR) {
// There was an error, clear the corresponding wrapped error.
- error_bits_ &= ~GLES2Util::GLErrorToErrorBit(error);
+ error_bits_ &= ~GLErrorToErrorBit(error);
}
return error;
}
void GLES2DecoderImpl::SetGLError(GLenum error) {
- error_bits_ |= GLES2Util::GLErrorToErrorBit(error);
+ error_bits_ |= GLErrorToErrorBit(error);
}
void GLES2DecoderImpl::CopyRealGLErrorsToWrapper() {
@@ -2004,20 +2048,6 @@
glCompileShader(shader);
};
-void GLES2DecoderImpl::DoGetShaderiv(
- GLuint shader, GLenum pname, GLint* params) {
- ShaderManager::ShaderInfo* info = GetShaderInfo(shader);
- if (!info) {
- SetGLError(GL_INVALID_OPERATION);
- return;
- }
- if (pname == GL_SHADER_SOURCE_LENGTH) {
- *params = info->source().size();
- } else {
- glGetShaderiv(shader, pname, params);
- }
-}
-
void GLES2DecoderImpl::DoGetShaderSource(
GLuint shader, GLsizei bufsize, GLsizei* length, char* dst) {
ShaderManager::ShaderInfo* info = GetShaderInfo(shader);
@@ -2247,18 +2277,6 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleGetString(
- uint32 immediate_data_size, const gles2::GetString& c) {
- GLenum name = static_cast<GLenum>(c.name);
- if (!ValidateGLenumStringType(name)) {
- SetGLError(GL_INVALID_ENUM);
- return error::kNoError;
- }
- Bucket* bucket = CreateBucket(c.bucket_id);
- bucket->SetFromString(reinterpret_cast<const char*>(glGetString(name)));
- return error::kNoError;
-}
-
error::Error GLES2DecoderImpl::HandleBufferData(
uint32 immediate_data_size, const gles2::BufferData& c) {
GLenum target = static_cast<GLenum>(c.target);
@@ -2419,6 +2437,8 @@
target, level, internal_format, width, height, border, image_size, data);
}
+// TODO(gman): handle CopyTexImage2D because we need to track what was created.
+
error::Error GLES2DecoderImpl::DoTexImage2D(
GLenum target,
GLint level,
« no previous file with comments | « gpu/command_buffer/service/common_decoder.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698