Commit 0750bde7 authored by boliu@chromium.org's avatar boliu@chromium.org

Pass texture target to CreateResourceFromExternalTexture

Instead of hardcoding GL_TEXTURE_2D

BUG=230300

Review URL: https://chromiumcodereview.appspot.com/13870013

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194770 0039d316-1c4b-4281-b951-d872f2087c98
parent 29c014f9
......@@ -77,6 +77,7 @@ void IOSurfaceLayerImpl::WillDraw(ResourceProvider* resource_provider) {
io_surface_texture_id_ = context3d->createTexture();
io_surface_resource_id_ =
resource_provider->CreateResourceFromExternalTexture(
GL_TEXTURE_RECTANGLE_ARB,
io_surface_texture_id_);
}
......
......@@ -68,7 +68,9 @@ void TextureLayerImpl::WillDraw(ResourceProvider* resource_provider) {
return;
DCHECK(!external_texture_resource_);
external_texture_resource_ =
resource_provider->CreateResourceFromExternalTexture(texture_id_);
resource_provider->CreateResourceFromExternalTexture(
GL_TEXTURE_2D,
texture_id_);
}
void TextureLayerImpl::AppendQuads(QuadSink* quad_sink,
......
......@@ -235,21 +235,23 @@ ResourceProvider::ResourceId ResourceProvider::CreateBitmap(gfx::Size size) {
return id;
}
ResourceProvider::ResourceId ResourceProvider::
CreateResourceFromExternalTexture(unsigned texture_id) {
ResourceProvider::ResourceId
ResourceProvider::CreateResourceFromExternalTexture(
unsigned texture_target,
unsigned texture_id) {
DCHECK(thread_checker_.CalledOnValidThread());
WebGraphicsContext3D* context3d = output_surface_->context3d();
DCHECK(context3d);
GLC(context3d, context3d->bindTexture(GL_TEXTURE_2D, texture_id));
GLC(context3d, context3d->bindTexture(texture_target, texture_id));
GLC(context3d, context3d->texParameteri(
GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR));
texture_target, GL_TEXTURE_MIN_FILTER, GL_LINEAR));
GLC(context3d, context3d->texParameteri(
GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR));
texture_target, GL_TEXTURE_MAG_FILTER, GL_LINEAR));
GLC(context3d, context3d->texParameteri(
GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE));
texture_target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE));
GLC(context3d, context3d->texParameteri(
GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE));
texture_target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE));
ResourceId id = next_id_++;
Resource resource(texture_id, gfx::Size(), 0, GL_LINEAR);
......
......@@ -99,7 +99,9 @@ class CC_EXPORT ResourceProvider {
ResourceId CreateBitmap(gfx::Size size);
// Wraps an external texture into a GL resource.
ResourceId CreateResourceFromExternalTexture(unsigned texture_id);
ResourceId CreateResourceFromExternalTexture(
unsigned texture_target,
unsigned texture_id);
// Wraps an external texture mailbox into a GL resource.
ResourceId CreateResourceFromTextureMailbox(const TextureMailbox& mailbox);
......
......@@ -324,6 +324,7 @@ VideoFrameExternalResources VideoResourceUpdater::CreateForHardwarePlanes(
external_resources.hardware_resource =
resource_provider_->CreateResourceFromExternalTexture(
video_frame->texture_target(),
video_frame->texture_id());
TextureMailbox::ReleaseCallback callback_to_return_resource =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment