| // |
| // Copyright 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 class to contain D3D shader executable |
| // implementation details. |
| |
| #ifndef LIBANGLE_RENDERER_D3D_SHADEREXECUTABLED3D_H_ |
| #define LIBANGLE_RENDERER_D3D_SHADEREXECUTABLED3D_H_ |
| |
| #include "common/MemoryBuffer.h" |
| #include "common/debug.h" |
| |
| #include <cstdint> |
| #include <vector> |
| |
| namespace rx |
| { |
| |
| class ShaderExecutableD3D : angle::NonCopyable |
| { |
| public: |
| ShaderExecutableD3D(const void *function, size_t length); |
| virtual ~ShaderExecutableD3D(); |
| |
| const uint8_t *getFunction() const; |
| |
| size_t getLength() const; |
| |
| const std::string &getDebugInfo() const; |
| |
| void appendDebugInfo(const std::string &info); |
| |
| private: |
| std::vector<uint8_t> mFunctionBuffer; |
| std::string mDebugInfo; |
| }; |
| |
| class UniformStorageD3D : angle::NonCopyable |
| { |
| public: |
| UniformStorageD3D(size_t initialSize); |
| virtual ~UniformStorageD3D(); |
| |
| size_t size() const; |
| |
| uint8_t *getDataPointer(unsigned int registerIndex, unsigned int registerElement); |
| |
| private: |
| angle::MemoryBuffer mUniformData; |
| }; |
| |
| } // namespace rx |
| |
| #endif // LIBANGLE_RENDERER_D3D_SHADEREXECUTABLED3D_H_ |