tor-browser

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

VertexArray9.h (2000B)


      1 //
      2 // Copyright 2014 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 // VertexArray9.h: Defines the rx::VertexArray9 class which implements rx::VertexArrayImpl.
      8 
      9 #ifndef LIBANGLE_RENDERER_D3D_D3D9_VERTEXARRAY9_H_
     10 #define LIBANGLE_RENDERER_D3D_D3D9_VERTEXARRAY9_H_
     11 
     12 #include "libANGLE/Context.h"
     13 #include "libANGLE/renderer/VertexArrayImpl.h"
     14 #include "libANGLE/renderer/d3d/d3d9/Context9.h"
     15 #include "libANGLE/renderer/d3d/d3d9/Renderer9.h"
     16 
     17 namespace rx
     18 {
     19 class Renderer9;
     20 
     21 class VertexArray9 : public VertexArrayImpl
     22 {
     23  public:
     24    VertexArray9(const gl::VertexArrayState &data) : VertexArrayImpl(data) {}
     25 
     26    angle::Result syncState(const gl::Context *context,
     27                            const gl::VertexArray::DirtyBits &dirtyBits,
     28                            gl::VertexArray::DirtyAttribBitsArray *attribBits,
     29                            gl::VertexArray::DirtyBindingBitsArray *bindingBits) override;
     30 
     31    ~VertexArray9() override {}
     32 
     33    Serial getCurrentStateSerial() const { return mCurrentStateSerial; }
     34 
     35  private:
     36    Serial mCurrentStateSerial;
     37 };
     38 
     39 inline angle::Result VertexArray9::syncState(const gl::Context *context,
     40                                             const gl::VertexArray::DirtyBits &dirtyBits,
     41                                             gl::VertexArray::DirtyAttribBitsArray *attribBits,
     42                                             gl::VertexArray::DirtyBindingBitsArray *bindingBits)
     43 {
     44 
     45    ASSERT(dirtyBits.any());
     46    Renderer9 *renderer = GetImplAs<Context9>(context)->getRenderer();
     47    mCurrentStateSerial = renderer->generateSerial();
     48 
     49    // Clear the dirty bits in the back-end here.
     50    memset(attribBits, 0, sizeof(gl::VertexArray::DirtyAttribBitsArray));
     51    memset(bindingBits, 0, sizeof(gl::VertexArray::DirtyBindingBitsArray));
     52 
     53    return angle::Result::Continue;
     54 }
     55 }  // namespace rx
     56 
     57 #endif  // LIBANGLE_RENDERER_D3D_D3D9_VERTEXARRAY9_H_