| // | |
| // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // | |
| // ShaderExecutable.h: Defines a renderer-agnostic class to contain shader | |
| // executable implementation details. | |
| #ifndef LIBGLESV2_RENDERER_SHADEREXECUTABLE_H_ | |
| #define LIBGLESV2_RENDERER_SHADEREXECUTABLE_H_ | |
| #include "common/angleutils.h" | |
| #include "common/debug.h" | |
| #include <vector> | |
| #include <cstdint> | |
| namespace rx | |
| { | |
| class ShaderExecutable | |
| { | |
| public: | |
| ShaderExecutable(const void *function, size_t length) | |
| : mFunctionBuffer(length) | |
| { | |
| memcpy(mFunctionBuffer.data(), function, length); | |
| } | |
| virtual ~ShaderExecutable() {} | |
| const uint8_t *getFunction() const | |
| { | |
| return mFunctionBuffer.data(); | |
| } | |
| size_t getLength() const | |
| { | |
| return mFunctionBuffer.size(); | |
| } | |
| private: | |
| DISALLOW_COPY_AND_ASSIGN(ShaderExecutable); | |
| std::vector<uint8_t> mFunctionBuffer; | |
| }; | |
| class UniformStorage | |
| { | |
| public: | |
| UniformStorage(size_t initialSize) | |
| : mSize(initialSize) | |
| { | |
| } | |
| virtual ~UniformStorage() {} | |
| size_t size() const { return mSize; } | |
| private: | |
| size_t mSize; | |
| }; | |
| } | |
| #endif // LIBGLESV2_RENDERER_SHADEREXECUTABLE9_H_ |