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

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

Issue 1335873002: Initialize default texture for GL_TEXTURE_3D and GL_TEXTURE_2D_ARRAY (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix default argument Created 5 years, 3 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
« no previous file with comments | « gpu/command_buffer/service/test_helper.h ('k') | gpu/command_buffer/service/texture_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/service/test_helper.cc
diff --git a/gpu/command_buffer/service/test_helper.cc b/gpu/command_buffer/service/test_helper.cc
index c12f872f71b675b901eee87c816f2a1e83b74628..4b8d8fc9e6e35f5a82d7b128cacf059544b7c283 100644
--- a/gpu/command_buffer/service/test_helper.cc
+++ b/gpu/command_buffer/service/test_helper.cc
@@ -58,6 +58,10 @@ T ConstructShaderVariable(
#ifndef COMPILER_MSVC
const GLuint TestHelper::kServiceBlackTexture2dId;
const GLuint TestHelper::kServiceDefaultTexture2dId;
+const GLuint TestHelper::kServiceBlackTexture3dId;
+const GLuint TestHelper::kServiceDefaultTexture3dId;
+const GLuint TestHelper::kServiceBlackTexture2dArrayId;
+const GLuint TestHelper::kServiceDefaultTexture2dArrayId;
const GLuint TestHelper::kServiceBlackTextureCubemapId;
const GLuint TestHelper::kServiceDefaultTextureCubemapId;
const GLuint TestHelper::kServiceBlackExternalTextureId;
@@ -93,10 +97,18 @@ void TestHelper::SetupTextureInitializationExpectations(
bool needs_initialization = (target != GL_TEXTURE_EXTERNAL_OES);
bool needs_faces = (target == GL_TEXTURE_CUBE_MAP);
+ bool is_3d_or_2d_array_target = (target == GL_TEXTURE_3D ||
+ target == GL_TEXTURE_2D_ARRAY);
static GLuint texture_2d_ids[] = {
kServiceBlackTexture2dId,
kServiceDefaultTexture2dId };
+ static GLuint texture_3d_ids[] = {
+ kServiceBlackTexture3dId,
+ kServiceDefaultTexture3dId };
+ static GLuint texture_2d_array_ids[] = {
+ kServiceBlackTexture2dArrayId,
+ kServiceDefaultTexture2dArrayId };
static GLuint texture_cube_map_ids[] = {
kServiceBlackTextureCubemapId,
kServiceDefaultTextureCubemapId };
@@ -112,6 +124,12 @@ void TestHelper::SetupTextureInitializationExpectations(
case GL_TEXTURE_2D:
texture_ids = &texture_2d_ids[0];
break;
+ case GL_TEXTURE_3D:
+ texture_ids = &texture_3d_ids[0];
+ break;
+ case GL_TEXTURE_2D_ARRAY:
+ texture_ids = &texture_2d_array_ids[0];
+ break;
case GL_TEXTURE_CUBE_MAP:
texture_ids = &texture_cube_map_ids[0];
break;
@@ -152,10 +170,17 @@ void TestHelper::SetupTextureInitializationExpectations(
.RetiresOnSaturation();
}
} else {
- EXPECT_CALL(*gl, TexImage2D(target, 0, GL_RGBA, 1, 1, 0, GL_RGBA,
- GL_UNSIGNED_BYTE, _))
- .Times(1)
- .RetiresOnSaturation();
+ if (is_3d_or_2d_array_target) {
+ EXPECT_CALL(*gl, TexImage3D(target, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA,
+ GL_UNSIGNED_BYTE, _))
+ .Times(1)
+ .RetiresOnSaturation();
+ } else {
+ EXPECT_CALL(*gl, TexImage2D(target, 0, GL_RGBA, 1, 1, 0, GL_RGBA,
+ GL_UNSIGNED_BYTE, _))
+ .Times(1)
+ .RetiresOnSaturation();
+ }
}
}
}
@@ -166,6 +191,7 @@ void TestHelper::SetupTextureInitializationExpectations(
void TestHelper::SetupTextureManagerInitExpectations(
::gfx::MockGLInterface* gl,
+ bool is_es3_enabled,
const char* extensions,
bool use_default_textures) {
InSequence sequence;
@@ -175,6 +201,13 @@ void TestHelper::SetupTextureManagerInitExpectations(
SetupTextureInitializationExpectations(
gl, GL_TEXTURE_CUBE_MAP, use_default_textures);
+ if (is_es3_enabled) {
+ SetupTextureInitializationExpectations(
+ gl, GL_TEXTURE_3D, use_default_textures);
+ SetupTextureInitializationExpectations(
+ gl, GL_TEXTURE_2D_ARRAY, use_default_textures);
+ }
+
bool ext_image_external = false;
bool arb_texture_rectangle = false;
base::CStringTokenizer t(extensions, extensions + strlen(extensions), " ");
@@ -211,6 +244,12 @@ void TestHelper::SetupTextureDestructionExpectations(
case GL_TEXTURE_2D:
texture_id = kServiceDefaultTexture2dId;
break;
+ case GL_TEXTURE_3D:
+ texture_id = kServiceDefaultTexture3dId;
+ break;
+ case GL_TEXTURE_2D_ARRAY:
+ texture_id = kServiceDefaultTexture2dArrayId;
+ break;
case GL_TEXTURE_CUBE_MAP:
texture_id = kServiceDefaultTextureCubemapId;
break;
@@ -231,12 +270,20 @@ void TestHelper::SetupTextureDestructionExpectations(
void TestHelper::SetupTextureManagerDestructionExpectations(
::gfx::MockGLInterface* gl,
+ bool is_es3_enabled,
const char* extensions,
bool use_default_textures) {
SetupTextureDestructionExpectations(gl, GL_TEXTURE_2D, use_default_textures);
SetupTextureDestructionExpectations(
gl, GL_TEXTURE_CUBE_MAP, use_default_textures);
+ if (is_es3_enabled) {
+ SetupTextureDestructionExpectations(
+ gl, GL_TEXTURE_3D, use_default_textures);
+ SetupTextureDestructionExpectations(
+ gl, GL_TEXTURE_2D_ARRAY,use_default_textures);
+ }
+
bool ext_image_external = false;
bool arb_texture_rectangle = false;
base::CStringTokenizer t(extensions, extensions + strlen(extensions), " ");
@@ -260,7 +307,7 @@ void TestHelper::SetupTextureManagerDestructionExpectations(
gl, GL_TEXTURE_RECTANGLE_ARB, use_default_textures);
}
- EXPECT_CALL(*gl, DeleteTextures(4, _))
+ EXPECT_CALL(*gl, DeleteTextures(TextureManager::kNumDefaultTextures, _))
.Times(1)
.RetiresOnSaturation();
}
@@ -343,7 +390,8 @@ void TestHelper::SetupContextGroupInitExpectations(
}
bool use_default_textures = bind_generates_resource;
- SetupTextureManagerInitExpectations(gl, extensions, use_default_textures);
+ SetupTextureManagerInitExpectations(
+ gl, false, extensions, use_default_textures);
}
void TestHelper::SetupFeatureInfoInitExpectations(
« no previous file with comments | « gpu/command_buffer/service/test_helper.h ('k') | gpu/command_buffer/service/texture_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698