tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ShaderExecutableD3D.cpp (1561B)


      1 //
      2 // Copyright 2012 The ANGLE Project Authors. All rights reserved.
      3 // Use of this source code is governed by a BSD-style license that can be
      4 // found in the LICENSE file.
      5 //
      6 
      7 // ShaderExecutable.cpp: Implements a class to contain D3D shader executable
      8 // implementation details.
      9 
     10 #include "libANGLE/renderer/d3d/ShaderExecutableD3D.h"
     11 
     12 #include "common/angleutils.h"
     13 
     14 namespace rx
     15 {
     16 
     17 ShaderExecutableD3D::ShaderExecutableD3D(const void *function, size_t length)
     18    : mFunctionBuffer(length)
     19 {
     20    memcpy(mFunctionBuffer.data(), function, length);
     21 }
     22 
     23 ShaderExecutableD3D::~ShaderExecutableD3D() {}
     24 
     25 const uint8_t *ShaderExecutableD3D::getFunction() const
     26 {
     27    return mFunctionBuffer.data();
     28 }
     29 
     30 size_t ShaderExecutableD3D::getLength() const
     31 {
     32    return mFunctionBuffer.size();
     33 }
     34 
     35 const std::string &ShaderExecutableD3D::getDebugInfo() const
     36 {
     37    return mDebugInfo;
     38 }
     39 
     40 void ShaderExecutableD3D::appendDebugInfo(const std::string &info)
     41 {
     42    mDebugInfo += info;
     43 }
     44 
     45 UniformStorageD3D::UniformStorageD3D(size_t initialSize) : mUniformData()
     46 {
     47    bool result = mUniformData.resize(initialSize);
     48    ASSERT(result);
     49 
     50    // Uniform data is zero-initialized by default.
     51    mUniformData.fill(0);
     52 }
     53 
     54 UniformStorageD3D::~UniformStorageD3D() {}
     55 
     56 size_t UniformStorageD3D::size() const
     57 {
     58    return mUniformData.size();
     59 }
     60 
     61 uint8_t *UniformStorageD3D::getDataPointer(unsigned int registerIndex, unsigned int registerElement)
     62 {
     63    size_t offset = ((registerIndex * 4 + registerElement) * sizeof(float));
     64    return mUniformData.data() + offset;
     65 }
     66 
     67 }  // namespace rx