| // |
| // 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.cpp: Implements a class to contain D3D shader executable |
| // implementation details. |
| |
| #include "libANGLE/renderer/d3d/ShaderExecutableD3D.h" |
| |
| #include "common/angleutils.h" |
| |
| namespace rx |
| { |
| |
| ShaderExecutableD3D::ShaderExecutableD3D(const void *function, size_t length) |
| : mFunctionBuffer(length) |
| { |
| memcpy(mFunctionBuffer.data(), function, length); |
| } |
| |
| ShaderExecutableD3D::~ShaderExecutableD3D() {} |
| |
| const uint8_t *ShaderExecutableD3D::getFunction() const |
| { |
| return mFunctionBuffer.data(); |
| } |
| |
| size_t ShaderExecutableD3D::getLength() const |
| { |
| return mFunctionBuffer.size(); |
| } |
| |
| const std::string &ShaderExecutableD3D::getDebugInfo() const |
| { |
| return mDebugInfo; |
| } |
| |
| void ShaderExecutableD3D::appendDebugInfo(const std::string &info) |
| { |
| mDebugInfo += info; |
| } |
| |
| UniformStorageD3D::UniformStorageD3D(size_t initialSize) : mUniformData() |
| { |
| bool result = mUniformData.resize(initialSize); |
| ASSERT(result); |
| |
| // Uniform data is zero-initialized by default. |
| mUniformData.fill(0); |
| } |
| |
| UniformStorageD3D::~UniformStorageD3D() {} |
| |
| size_t UniformStorageD3D::size() const |
| { |
| return mUniformData.size(); |
| } |
| |
| uint8_t *UniformStorageD3D::getDataPointer(unsigned int registerIndex, unsigned int registerElement) |
| { |
| size_t offset = ((registerIndex * 4 + registerElement) * sizeof(float)); |
| return mUniformData.data() + offset; |
| } |
| |
| } // namespace rx |