| Index: cc/resources/resource_provider.cc
|
| diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc
|
| index c0d56ef9f70775a8fec6db3f1c12eb8322f653f7..6696840c686c55e7acbb005d137dc42d71dd3dae 100644
|
| --- a/cc/resources/resource_provider.cc
|
| +++ b/cc/resources/resource_provider.cc
|
| @@ -339,8 +339,12 @@ ResourceProvider::ResourceId ResourceProvider::CreateResource(
|
| DCHECK(!size.IsEmpty());
|
| switch (default_resource_type_) {
|
| case GLTexture:
|
| - return CreateGLTexture(
|
| - size, GL_TEXTURE_POOL_UNMANAGED_CHROMIUM, wrap_mode, hint, format);
|
| + return CreateGLTexture(size,
|
| + GL_TEXTURE_2D,
|
| + GL_TEXTURE_POOL_UNMANAGED_CHROMIUM,
|
| + wrap_mode,
|
| + hint,
|
| + format);
|
| case Bitmap:
|
| DCHECK_EQ(RGBA_8888, format);
|
| return CreateBitmap(size, wrap_mode);
|
| @@ -354,14 +358,19 @@ ResourceProvider::ResourceId ResourceProvider::CreateResource(
|
|
|
| ResourceProvider::ResourceId ResourceProvider::CreateManagedResource(
|
| gfx::Size size,
|
| + GLenum target,
|
| GLint wrap_mode,
|
| TextureUsageHint hint,
|
| ResourceFormat format) {
|
| DCHECK(!size.IsEmpty());
|
| switch (default_resource_type_) {
|
| case GLTexture:
|
| - return CreateGLTexture(
|
| - size, GL_TEXTURE_POOL_MANAGED_CHROMIUM, wrap_mode, hint, format);
|
| + return CreateGLTexture(size,
|
| + target,
|
| + GL_TEXTURE_POOL_MANAGED_CHROMIUM,
|
| + wrap_mode,
|
| + hint,
|
| + format);
|
| case Bitmap:
|
| DCHECK_EQ(RGBA_8888, format);
|
| return CreateBitmap(size, wrap_mode);
|
| @@ -375,6 +384,7 @@ ResourceProvider::ResourceId ResourceProvider::CreateManagedResource(
|
|
|
| ResourceProvider::ResourceId ResourceProvider::CreateGLTexture(
|
| gfx::Size size,
|
| + GLenum target,
|
| GLenum texture_pool,
|
| GLint wrap_mode,
|
| TextureUsageHint hint,
|
| @@ -385,7 +395,7 @@ ResourceProvider::ResourceId ResourceProvider::CreateGLTexture(
|
|
|
| ResourceId id = next_id_++;
|
| Resource resource(
|
| - 0, size, GL_TEXTURE_2D, GL_LINEAR, texture_pool, wrap_mode, hint, format);
|
| + 0, size, target, GL_LINEAR, texture_pool, wrap_mode, hint, format);
|
| resource.allocated = false;
|
| resources_[id] = resource;
|
| return id;
|
| @@ -789,24 +799,20 @@ ResourceProvider::ScopedReadLockGL::~ScopedReadLockGL() {
|
| ResourceProvider::ScopedSamplerGL::ScopedSamplerGL(
|
| ResourceProvider* resource_provider,
|
| ResourceProvider::ResourceId resource_id,
|
| - GLenum target,
|
| GLenum filter)
|
| : ScopedReadLockGL(resource_provider, resource_id),
|
| - target_(target),
|
| - unit_(GL_TEXTURE0) {
|
| - resource_provider->BindForSampling(resource_id, target, unit_, filter);
|
| + unit_(GL_TEXTURE0),
|
| + target_(resource_provider->BindForSampling(resource_id, unit_, filter)) {
|
| }
|
|
|
| ResourceProvider::ScopedSamplerGL::ScopedSamplerGL(
|
| ResourceProvider* resource_provider,
|
| ResourceProvider::ResourceId resource_id,
|
| - GLenum target,
|
| GLenum unit,
|
| GLenum filter)
|
| : ScopedReadLockGL(resource_provider, resource_id),
|
| - target_(target),
|
| - unit_(unit) {
|
| - resource_provider->BindForSampling(resource_id, target, unit, filter);
|
| + unit_(unit),
|
| + target_(resource_provider->BindForSampling(resource_id, unit_, filter)) {
|
| }
|
|
|
| ResourceProvider::ScopedSamplerGL::~ScopedSamplerGL() {
|
| @@ -1487,10 +1493,10 @@ void ResourceProvider::UnmapPixelBuffer(ResourceId id) {
|
| }
|
| }
|
|
|
| -void ResourceProvider::BindForSampling(ResourceProvider::ResourceId resource_id,
|
| - GLenum target,
|
| - GLenum unit,
|
| - GLenum filter) {
|
| +GLenum ResourceProvider::BindForSampling(
|
| + ResourceProvider::ResourceId resource_id,
|
| + GLenum unit,
|
| + GLenum filter) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| WebGraphicsContext3D* context3d = Context3d();
|
| ResourceMap::iterator it = resources_.find(resource_id);
|
| @@ -1500,9 +1506,9 @@ void ResourceProvider::BindForSampling(ResourceProvider::ResourceId resource_id,
|
| DCHECK(!resource->locked_for_write || resource->set_pixels_completion_forced);
|
|
|
| ScopedSetActiveTexture scoped_active_tex(context3d, unit);
|
| + GLenum target = resource->target;
|
| GLC(context3d, context3d->bindTexture(target, resource->gl_id));
|
| if (filter != resource->filter) {
|
| - DCHECK_EQ(resource->target, target);
|
| GLC(context3d,
|
| context3d->texParameteri(target, GL_TEXTURE_MIN_FILTER, filter));
|
| GLC(context3d,
|
| @@ -1518,6 +1524,8 @@ void ResourceProvider::BindForSampling(ResourceProvider::ResourceId resource_id,
|
| resource->bound_image_id = resource->image_id;
|
| resource->dirty_image = false;
|
| }
|
| +
|
| + return target;
|
| }
|
|
|
| void ResourceProvider::BeginSetPixels(ResourceId id) {
|
|
|