| /* |
| * Copyright 2013 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #ifndef ANDROID_SURFACE_TEXTURE_GL_H |
| #define ANDROID_SURFACE_TEXTURE_GL_H |
| |
| #include "Constants.h" |
| #include "GLTest.h" |
| |
| #include "FrameWaiter.h" |
| #include "TextureRenderer.h" |
| |
| #include <gui/GLConsumer.h> |
| #include <gui/Surface.h> |
| |
| namespace android { |
| |
| class FrameWaiter; |
| class GLConsumer; |
| class TextureRenderer; |
| |
| class SurfaceTextureGLTest : public GLTest { |
| protected: |
| enum { TEX_ID = 123 }; |
| |
| void SetUp() { |
| GLTest::SetUp(); |
| sp<IGraphicBufferProducer> producer; |
| BufferQueue::createBufferQueue(&producer, &mConsumer); |
| mST = new GLConsumer(mConsumer, TEX_ID, GLConsumer::TEXTURE_EXTERNAL, |
| true, false); |
| mSTC = new Surface(producer); |
| mANW = mSTC; |
| ASSERT_EQ(NO_ERROR, native_window_set_usage(mANW.get(), TEST_PRODUCER_USAGE_BITS)); |
| mTextureRenderer = new TextureRenderer(TEX_ID, mST); |
| ASSERT_NO_FATAL_FAILURE(mTextureRenderer->SetUp()); |
| mFW = new FrameWaiter; |
| mST->setFrameAvailableListener(mFW); |
| } |
| |
| void TearDown() { |
| mTextureRenderer.clear(); |
| mANW.clear(); |
| mSTC.clear(); |
| mST.clear(); |
| GLTest::TearDown(); |
| } |
| |
| void drawTexture() { |
| mTextureRenderer->drawTexture(); |
| } |
| |
| sp<IGraphicBufferConsumer> mConsumer; |
| sp<GLConsumer> mST; |
| sp<Surface> mSTC; |
| sp<ANativeWindow> mANW; |
| sp<TextureRenderer> mTextureRenderer; |
| sp<FrameWaiter> mFW; |
| }; |
| |
| } // namespace android |
| |
| #endif |