| Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
|
| ===================================================================
|
| --- gpu/command_buffer/service/gles2_cmd_decoder.cc (revision 57082)
|
| +++ gpu/command_buffer/service/gles2_cmd_decoder.cc (working copy)
|
| @@ -273,7 +273,7 @@
|
| };
|
|
|
| #if defined(GLES2_GPU_SERVICE_TRANSLATE_SHADER)
|
| -void FinalizeShaderTranslator(void*) {
|
| +void FinalizeShaderTranslator(void* /* dummy */) {
|
| ShFinalize();
|
| }
|
|
|
| @@ -1226,12 +1226,6 @@
|
| // Which textures are bound to texture units through glActiveTexture.
|
| scoped_array<TextureUnit> texture_units_;
|
|
|
| - // Black (0,0,0,1) textures for when non-renderable textures are used.
|
| - // NOTE: There is no corresponding TextureInfo for these textures.
|
| - // TextureInfos are only for textures the client side can access.
|
| - GLuint black_2d_texture_id_;
|
| - GLuint black_cube_texture_id_;
|
| -
|
| // state saved for clearing so we can clear render buffers and then
|
| // restore to these values.
|
| GLclampf clear_red_;
|
| @@ -1525,8 +1519,6 @@
|
| attrib_0_buffer_id_(0),
|
| attrib_0_size_(0),
|
| active_texture_unit_(0),
|
| - black_2d_texture_id_(0),
|
| - black_cube_texture_id_(0),
|
| clear_red_(0),
|
| clear_green_(0),
|
| clear_blue_(0),
|
| @@ -1616,28 +1608,17 @@
|
| texture_units_.reset(
|
| new TextureUnit[group_->max_texture_units()]);
|
| for (uint32 tt = 0; tt < group_->max_texture_units(); ++tt) {
|
| - texture_units_[tt].bound_texture_2d =
|
| - texture_manager()->GetDefaultTextureInfo(GL_TEXTURE_2D);
|
| - texture_units_[tt].bound_texture_cube_map =
|
| + glActiveTexture(GL_TEXTURE0 + tt);
|
| + // Do cube map first because we want the last bind to be 2D.
|
| + TextureManager::TextureInfo* info =
|
| texture_manager()->GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP);
|
| + texture_units_[tt].bound_texture_cube_map = info;
|
| + glBindTexture(GL_TEXTURE_CUBE_MAP, info->service_id());
|
| + info = texture_manager()->GetDefaultTextureInfo(GL_TEXTURE_2D);
|
| + texture_units_[tt].bound_texture_2d = info;
|
| + glBindTexture(GL_TEXTURE_2D, info->service_id());
|
| }
|
| -
|
| - GLuint ids[2];
|
| - glGenTextures(2, ids);
|
| - // Make black textures for replacing non-renderable textures.
|
| - black_2d_texture_id_ = ids[0];
|
| - black_cube_texture_id_ = ids[1];
|
| - static uint8 black[] = {0, 0, 0, 255};
|
| - glBindTexture(GL_TEXTURE_2D, black_2d_texture_id_);
|
| - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA,
|
| - GL_UNSIGNED_BYTE, black);
|
| - glBindTexture(GL_TEXTURE_2D, 0);
|
| - glBindTexture(GL_TEXTURE_CUBE_MAP, black_cube_texture_id_);
|
| - for (int ii = 0; ii < GLES2Util::kNumFaces; ++ii) {
|
| - glTexImage2D(GLES2Util::IndexToGLFaceTarget(ii), 0, GL_RGBA, 1, 1, 0,
|
| - GL_RGBA, GL_UNSIGNED_BYTE, black);
|
| - }
|
| - glBindTexture(GL_TEXTURE_CUBE_MAP, 0);
|
| + glActiveTexture(GL_TEXTURE0);
|
| CHECK_GL_ERROR();
|
|
|
| if (context_->IsOffscreen()) {
|
| @@ -2115,12 +2096,6 @@
|
| if (context_.get()) {
|
| MakeCurrent();
|
|
|
| - if (black_2d_texture_id_) {
|
| - glDeleteTextures(1, &black_2d_texture_id_);
|
| - }
|
| - if (black_cube_texture_id_) {
|
| - glDeleteTextures(1, &black_cube_texture_id_);
|
| - }
|
| if (attrib_0_buffer_id_) {
|
| glDeleteBuffersARB(1, &attrib_0_buffer_id_);
|
| }
|
| @@ -3464,8 +3439,7 @@
|
| glBindTexture(
|
| uniform_info->type == GL_SAMPLER_2D ? GL_TEXTURE_2D :
|
| GL_TEXTURE_CUBE_MAP,
|
| - uniform_info->type == GL_SAMPLER_2D ? black_2d_texture_id_ :
|
| - black_cube_texture_id_);
|
| + texture_manager()->black_texture_id(uniform_info->type));
|
| }
|
| }
|
| // else: should this be an error?
|
|
|