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

Unified Diff: gpu/command_buffer/service/texture_manager.h

Issue 7480014: Support GL_OES_EGL_image_external (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 5 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.cc ('k') | gpu/command_buffer/service/texture_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/service/texture_manager.h
diff --git a/gpu/command_buffer/service/texture_manager.h b/gpu/command_buffer/service/texture_manager.h
index 2fc1cb9d381b588ca3191bfd8e905de34c8bd9a0..b4e9626e64121008da57158e3db54c44997a7a02 100644
--- a/gpu/command_buffer/service/texture_manager.h
+++ b/gpu/command_buffer/service/texture_manager.h
@@ -206,17 +206,10 @@ class TextureManager {
// Sets the TextureInfo's target
// Parameters:
- // target: GL_TEXTURE_2D or GL_TEXTURE_CUBE_MAP
+ // target: GL_TEXTURE_2D or GL_TEXTURE_CUBE_MAP or
+ // GL_TEXTURE_EXTERNAL_OES
// max_levels: The maximum levels this type of target can have.
- void SetTarget(GLenum target, GLint max_levels) {
- DCHECK_EQ(0u, target_); // you can only set this once.
- target_ = target;
- size_t num_faces = (target == GL_TEXTURE_2D) ? 1 : 6;
- level_infos_.resize(num_faces);
- for (size_t ii = 0; ii < num_faces; ++ii) {
- level_infos_[ii].resize(max_levels);
- }
- }
+ void SetTarget(GLenum target, GLint max_levels);
// Update info about this texture.
void Update(const FeatureInfo* feature_info);
@@ -269,20 +262,32 @@ class TextureManager {
~TextureManager();
// Init the texture manager.
- bool Initialize();
+ bool Initialize(const FeatureInfo* feature_info);
// Must call before destruction.
void Destroy(bool have_context);
// Returns the maximum number of levels.
GLint MaxLevelsForTarget(GLenum target) const {
- return (target == GL_TEXTURE_2D) ? max_levels_ : max_cube_map_levels_;
+ switch (target) {
+ case GL_TEXTURE_2D:
+ return max_levels_;
+ case GL_TEXTURE_EXTERNAL_OES:
+ return 1;
+ default:
+ return max_cube_map_levels_;
+ }
}
// Returns the maximum size.
GLsizei MaxSizeForTarget(GLenum target) const {
- return (target == GL_TEXTURE_2D) ? max_texture_size_ :
- max_cube_map_texture_size_;
+ switch (target) {
+ case GL_TEXTURE_2D:
+ case GL_TEXTURE_EXTERNAL_OES:
+ return max_texture_size_;
+ default:
+ return max_cube_map_texture_size_;
+ }
}
// Checks if a dimensions are valid for a given target.
@@ -340,8 +345,17 @@ class TextureManager {
bool GetClientId(GLuint service_id, GLuint* client_id) const;
TextureInfo* GetDefaultTextureInfo(GLenum target) {
- return target == GL_TEXTURE_2D ? default_texture_2d_ :
- default_texture_cube_map_;
+ switch (target) {
+ case GL_TEXTURE_2D:
+ return default_texture_2d_;
+ case GL_TEXTURE_CUBE_MAP:
+ return default_texture_cube_map_;
+ case GL_TEXTURE_EXTERNAL_OES:
+ return default_texture_external_oes_;
+ default:
+ NOTREACHED();
+ return NULL;
+ }
}
bool HaveUnrenderableTextures() const {
@@ -349,8 +363,17 @@ class TextureManager {
}
GLuint black_texture_id(GLenum target) const {
- return target == GL_SAMPLER_2D ? black_2d_texture_id_ :
- black_cube_texture_id_;
+ switch (target) {
+ case GL_SAMPLER_2D:
+ return black_2d_texture_id_;
+ case GL_SAMPLER_CUBE:
+ return black_cube_texture_id_;
+ case GL_SAMPLER_EXTERNAL_OES:
+ return black_oes_external_texture_id_;
+ default:
+ NOTREACHED();
+ return 0;
+ }
}
private:
@@ -370,10 +393,12 @@ class TextureManager {
// TextureInfos are only for textures the client side can access.
GLuint black_2d_texture_id_;
GLuint black_cube_texture_id_;
+ GLuint black_oes_external_texture_id_;
// The default textures for each target (texture name = 0)
TextureInfo::Ref default_texture_2d_;
TextureInfo::Ref default_texture_cube_map_;
+ TextureInfo::Ref default_texture_external_oes_;
DISALLOW_COPY_AND_ASSIGN(TextureManager);
};
« no previous file with comments | « gpu/command_buffer/service/test_helper.cc ('k') | gpu/command_buffer/service/texture_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698