summaryrefslogtreecommitdiff
path: root/libs/hwui/RenderBuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/RenderBuffer.h')
-rw-r--r--libs/hwui/RenderBuffer.h181
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