Home | History | Annotate | Download | only in d3d9
      1 //
      2 // Copyright (c) 2002-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 // VertexBuffer9.h: Defines the D3D9 VertexBuffer implementation.
      8 
      9 #ifndef LIBGLESV2_RENDERER_VERTEXBUFFER9_H_
     10 #define LIBGLESV2_RENDERER_VERTEXBUFFER9_H_
     11 
     12 #include "libGLESv2/renderer/d3d/VertexBuffer.h"
     13 
     14 namespace rx
     15 {
     16 class Renderer9;
     17 
     18 class VertexBuffer9 : public VertexBuffer
     19 {
     20   public:
     21     explicit VertexBuffer9(rx::Renderer9 *renderer);
     22     virtual ~VertexBuffer9();
     23 
     24     virtual gl::Error initialize(unsigned int size, bool dynamicUsage);
     25 
     26     static VertexBuffer9 *makeVertexBuffer9(VertexBuffer *vertexBuffer);
     27 
     28     virtual gl::Error storeVertexAttributes(const gl::VertexAttribute &attrib, const gl::VertexAttribCurrentValueData &currentValue,
     29                                             GLint start, GLsizei count, GLsizei instances, unsigned int offset);
     30 
     31     virtual gl::Error getSpaceRequired(const gl::VertexAttribute &attrib, GLsizei count, GLsizei instances, unsigned int *outSpaceRequired) const;
     32 
     33     virtual unsigned int getBufferSize() const;
     34     virtual gl::Error setBufferSize(unsigned int size);
     35     virtual gl::Error discard();
     36 
     37     IDirect3DVertexBuffer9 *getBuffer() const;
     38 
     39   private:
     40     DISALLOW_COPY_AND_ASSIGN(VertexBuffer9);
     41 
     42     rx::Renderer9 *mRenderer;
     43 
     44     IDirect3DVertexBuffer9 *mVertexBuffer;
     45     unsigned int mBufferSize;
     46     bool mDynamicUsage;
     47 
     48     gl::Error spaceRequired(const gl::VertexAttribute &attrib, std::size_t count, GLsizei instances,
     49                             unsigned int *outSpaceRequired) const;
     50 };
     51 
     52 }
     53 
     54 #endif // LIBGLESV2_RENDERER_VERTEXBUFFER9_H_
     55