diff options
Diffstat (limited to 'libs/hwui/RenderBuffer.h')
-rw-r--r-- | libs/hwui/RenderBuffer.h | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/libs/hwui/RenderBuffer.h b/libs/hwui/RenderBuffer.h deleted file mode 100644 index 191a66a6d741..000000000000 --- a/libs/hwui/RenderBuffer.h +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (C) 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_HWUI_RENDER_BUFFER_H -#define ANDROID_HWUI_RENDER_BUFFER_H - -#include <GLES2/gl2.h> -#include <GLES2/gl2ext.h> - -namespace android { -namespace uirenderer { - -/** - * Represents an OpenGL render buffer. Render buffers are attached - * to layers to perform stencil work. - */ -struct RenderBuffer { - /** - * Creates a new render buffer in the specified format and dimensions. - * The format must be one of the formats allowed by glRenderbufferStorage(). - */ - RenderBuffer(GLenum format, uint32_t width, uint32_t height) - : mFormat(format), mWidth(width), mHeight(height), mAllocated(false) { - glGenRenderbuffers(1, &mName); - } - - ~RenderBuffer() { - if (mName) { - glDeleteRenderbuffers(1, &mName); - } - } - - /** - * Returns the GL name of this render buffer. - */ - GLuint getName() const { return mName; } - - /** - * Returns the format of this render buffer. - */ - GLenum getFormat() const { return mFormat; } - - /** - * Binds this render buffer to the current GL context. - */ - void bind() const { glBindRenderbuffer(GL_RENDERBUFFER, mName); } - - /** - * Indicates whether this render buffer has allocated its - * storage. See allocate() and resize(). - */ - bool isAllocated() const { return mAllocated; } - - /** - * Allocates this render buffer's storage if needed. - * This method doesn't do anything if isAllocated() returns true. - */ - void allocate() { - if (!mAllocated) { - glRenderbufferStorage(GL_RENDERBUFFER, mFormat, mWidth, mHeight); - mAllocated = true; - } - } - - /** - * Resizes this render buffer. If the buffer was previously allocated, - * the storage is re-allocated wit the new specified dimensions. If the - * buffer wasn't previously allocated, the buffer remains unallocated. - */ - void resize(uint32_t width, uint32_t height) { - if (isAllocated() && (width != mWidth || height != mHeight)) { - glRenderbufferStorage(GL_RENDERBUFFER, mFormat, width, height); - } - - mWidth = width; - mHeight = height; - } - - /** - * Returns the width of the render buffer in pixels. - */ - uint32_t getWidth() const { return mWidth; } - - /** - * Returns the height of the render buffer in pixels. - */ - uint32_t getHeight() const { return mHeight; } - - /** - * Returns the size of this render buffer in bytes. - */ - uint32_t getSize() const { - // Round to the nearest byte - return (uint32_t)((mWidth * mHeight * formatSize(mFormat)) / 8.0f + 0.5f); - } - - /** - * Returns the number of bits per component in the specified format. - * The format must be one of the formats allowed by glRenderbufferStorage(). - */ - static uint32_t formatSize(GLenum format) { - switch (format) { - case GL_STENCIL_INDEX8: - return 8; - case GL_STENCIL_INDEX1_OES: - return 1; - case GL_STENCIL_INDEX4_OES: - return 4; - case GL_DEPTH_COMPONENT16: - case GL_RGBA4: - case GL_RGB565: - case GL_RGB5_A1: - return 16; - } - return 0; - } - - /** - * Indicates whether the specified format represents a stencil buffer. - */ - static bool isStencilBuffer(GLenum format) { - switch (format) { - case GL_STENCIL_INDEX8: - case GL_STENCIL_INDEX1_OES: - case GL_STENCIL_INDEX4_OES: - return true; - } - return false; - } - - /** - * Returns the name of the specified render buffer format. - */ - static const char* formatName(GLenum format) { - switch (format) { - case GL_STENCIL_INDEX8: - return "STENCIL_8"; - case GL_STENCIL_INDEX1_OES: - return "STENCIL_1"; - case GL_STENCIL_INDEX4_OES: - return "STENCIL_4"; - case GL_DEPTH_COMPONENT16: - return "DEPTH_16"; - case GL_RGBA4: - return "RGBA_4444"; - case GL_RGB565: - return "RGB_565"; - case GL_RGB5_A1: - return "RGBA_5551"; - } - return "Unknown"; - } - -private: - GLenum mFormat; - - uint32_t mWidth; - uint32_t mHeight; - - bool mAllocated; - - GLuint mName; -}; // struct RenderBuffer - -}; // namespace uirenderer -}; // namespace android - -#endif // ANDROID_HWUI_RENDER_BUFFER_H |