diff options
Diffstat (limited to 'libs/gui/tests/SurfaceTextureGL.h')
-rw-r--r-- | libs/gui/tests/SurfaceTextureGL.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/libs/gui/tests/SurfaceTextureGL.h b/libs/gui/tests/SurfaceTextureGL.h new file mode 100644 index 0000000..53eb68c --- /dev/null +++ b/libs/gui/tests/SurfaceTextureGL.h @@ -0,0 +1,74 @@ +/* + * 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 "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; + 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 |