32 namespace cinder {
namespace dx {
36 Vbo(
bool createBuffer =
false);
41 void bufferData(
size_t size,
const void *
data, D3D11_USAGE
usage, D3D11_BIND_FLAG bindFlags, D3D11_CPU_ACCESS_FLAG cpuAccess);
73 enum {
ATTR_INDICES,
ATTR_POSITIONS,
ATTR_NORMALS,
ATTR_COLORS_RGB,
ATTR_COLORS_RGBA,
ATTR_TEXCOORDS2D_0,
ATTR_TEXCOORDS2D_1,
ATTR_TEXCOORDS2D_2,
ATTR_TEXCOORDS2D_3,
ATTR_TEXCOORDS3D_0,
ATTR_TEXCOORDS3D_1,
ATTR_TEXCOORDS3D_2,
ATTR_TEXCOORDS3D_3,
ATTR_TOTAL };
173 explicit VboMesh(
const TriMesh &triMesh, Layout layout = Layout() );
176 VboMesh(
size_t numVertices,
size_t numIndices, Layout layout, D3D11_PRIMITIVE_TOPOLOGY primitiveType );
177 VboMesh(
size_t numVertices,
size_t numIndices, Layout layout,
bool useQuads );
179 VboMesh(
size_t numVertices,
size_t numIndices, Layout layout, D3D11_PRIMITIVE_TOPOLOGY primitiveType,
Vbo *indexBuffer,
Vbo *staticBuffer,
Vbo *dynamicBuffer );
180 VboMesh(
size_t numVertices,
size_t numIndices, Layout layout,
GLenum primitiveType,
Vbo *indexBuffer,
Vbo *staticBuffer,
Vbo *dynamicBuffer );
286 virtual const char*
what()
const throw() {
return "OpenGL Vbo exception"; }
291 virtual const char*
what()
const throw() {
return "OpenGL Vbo exception: Invalid Target"; }
296 virtual const char*
what()
const throw() {
return "OpenGL Vbo exception: Map failure"; }
301 virtual const char*
what()
const throw() {
return "OpenGL Vbo exception: Unmap failure"; }
D3D11_BIND_FLAG getTarget() const
Definition: DxVbo.h:47
void setCustomVec4f(size_t index, const Vec4f &v)
Definition: DxVbo.h:239
void bufferSubData(ptrdiff_t offset, size_t size, const void *data)
Definition: DxVbo.cpp:113
void bufferTexCoords3d(size_t unit, const std::vector< Vec3f > &texCoords)
Definition: DxVbo.cpp:1038
GLenum GLint GLint y
Definition: GLee.h:987
void setNormal(const Vec3f &n)
Definition: DxVbo.h:227
void setPosition(const Vec3f &v)
Definition: DxVbo.h:225
void initializeBuffers(bool staticDataPlanar)
Definition: DxVbo.cpp:377
bool hasDynamicTexCoords3d(size_t unit=0) const
Definition: DxVbo.h:114
size_t mPositionOffset
Definition: DxVbo.h:156
bool hasColorsRGBA() const
Definition: DxVbo.h:94
void setStaticColorsRGB()
Definition: DxVbo.h:91
virtual const char * what() const
Definition: DxVbo.h:301
size_t mNormalOffset
Definition: DxVbo.h:157
void addDynamicCustomFloat()
Definition: DxVbo.h:134
size_t mPositionOffset
Definition: DxVbo.h:272
void setStaticTexCoords2d(size_t unit=0)
Definition: DxVbo.h:103
size_t mNumVertices
Definition: DxVbo.h:153
bool hasTexCoords(size_t unit) const
Definition: DxVbo.h:110
Layout mLayout
Definition: DxVbo.h:162
size_t getNumIndices() const
Definition: DxVbo.h:182
bool mUseQuads
Definition: DxVbo.h:166
void setCustomVec2f(size_t index, const Vec2f &v)
Definition: DxVbo.h:237
void setTexCoord3d1(const Vec3f &t)
Definition: DxVbo.h:233
bool hasDynamicNormals() const
Definition: DxVbo.h:84
void reset()
Emulates shared_ptr-like behavior.
Definition: DxVbo.h:218
void bufferPositions(const std::vector< Vec3f > &positions)
Definition: DxVbo.cpp:889
void setTexCoord2d1(const Vec2f &t)
Definition: DxVbo.h:232
ID3D11Buffer * getId() const
Definition: DxVbo.h:48
VboMesh()
Definition: DxVbo.h:172
uint8_t * mData
Definition: DxVbo.h:271
VertexIter(const VboMesh &mesh)
Definition: DxVbo.cpp:1202
void setTexCoordOffset(size_t unit, size_t aTexCoordOffset)
Definition: DxVbo.h:212
Obj()
Definition: DxVbo.cpp:161
virtual const char * what() const
Definition: DxVbo.h:291
void setStaticPositions()
Definition: DxVbo.h:127
void setTexCoord2d0(const Vec2f &t)
Definition: DxVbo.h:230
bool hasStaticNormals() const
Definition: DxVbo.h:83
bool hasStaticColorsRGBA() const
Definition: DxVbo.h:95
void reset()
Emulates shared_ptr-like behavior.
Definition: DxVbo.h:66
GLuint index
Definition: GLee.h:2259
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: GLee.h:1011
void setTexCoord3d2(const Vec3f &t)
Definition: DxVbo.h:235
size_t mNormalOffset
Definition: DxVbo.h:272
ID3D11InputLayout * mInputLayout
Definition: DxVbo.h:165
size_t getStride() const
Definition: DxVbo.h:247
class VertexIter mapVertexBuffer()
Definition: DxVbo.cpp:1182
std::shared_ptr< Obj > mObj
Definition: DxVbo.h:269
void setDynamicPositions()
Definition: DxVbo.h:128
void addDynamicCustomVec4f()
Definition: DxVbo.h:137
void bufferColorsRGB(const std::vector< Color > &colors)
Definition: DxVbo.cpp:1086
void operator++()
Definition: DxVbo.h:241
bool isDone() const
Definition: DxVbo.h:242
size_t getTexCoordOffset(size_t unit) const
Definition: DxVbo.h:211
bool hasDynamicColorsRGB() const
Definition: DxVbo.h:90
Vbo mBuffers[TOTAL_BUFFERS]
Definition: DxVbo.h:155
Vbo & getIndexVbo() const
Definition: DxVbo.h:204
bool hasTexCoords2d(size_t unit=0) const
Definition: DxVbo.h:100
bool hasDynamicTexCoords() const
Definition: DxVbo.cpp:152
~Obj()
Definition: DxVbo.cpp:72
Vbo & getDynamicVbo() const
Definition: DxVbo.h:206
~Obj()
Definition: DxVbo.cpp:165
void setDynamicNormals()
Definition: DxVbo.h:86
uint8_t * mData
Definition: DxVbo.h:264
void setStaticColorsRGBA()
Definition: DxVbo.h:97
size_t mStaticStride
Definition: DxVbo.h:160
uint8_t mStride
Definition: DxVbo.h:275
std::vector< std::pair< CustomAttr, size_t > > mCustomStatic
Definition: DxVbo.h:140
const Layout & getLayout() const
Definition: DxVbo.h:186
size_t mColorRGBAOffset
Definition: DxVbo.h:273
std::shared_ptr< Obj > mObj
Definition: DxVbo.h:281
Vec3< float > Vec3f
Definition: Vector.h:1317
void set(const VertexIter &other)
Definition: DxVbo.cpp:1187
bool hasPositions() const
Definition: DxVbo.h:124
uint8_t * map(D3D11_MAP access)
Definition: DxVbo.cpp:130
void bindIndexBuffer() const
Definition: DxVbo.cpp:855
void bufferColorsRGBA(const std::vector< ColorA > &colors)
Definition: DxVbo.cpp:1134
void setColorRGBA(const ColorA &n)
Definition: DxVbo.h:229
Vbo & getStaticVbo() const
Definition: DxVbo.h:205
GLuint GLuint GLsizei GLenum const GLvoid * indices
Definition: GLee.h:963
CustomAttr
Definition: DxVbo.h:130
Obj(const VboMesh &mesh)
Definition: DxVbo.cpp:1220
void bufferNormals(const std::vector< Vec3f > &normals)
Definition: DxVbo.cpp:942
bool hasStaticTexCoords3d(size_t unit=0) const
Definition: DxVbo.h:113
std::vector< size_t > mCustomOffsets
Definition: DxVbo.h:265
ID3D11Buffer * mId
Definition: DxVbo.h:56
void addDynamicCustomVec3f()
Definition: DxVbo.h:136
GLintptr GLsizeiptr GLbitfield access
Definition: GLee.h:5533
void bufferIndices(const std::vector< uint32_t > &indices)
Definition: DxVbo.cpp:867
bool hasDynamicIndices() const
Definition: DxVbo.h:120
void setDynamicColorsRGBA()
Definition: DxVbo.h:98
void unmap()
Definition: DxVbo.cpp:137
GLenum GLint x
Definition: GLee.h:987
void * getPointer() const
Definition: DxVbo.h:249
bool hasStaticPositions() const
Definition: DxVbo.h:125
GLintptr offset
Definition: GLee.h:2095
GLuint GLuint GLsizei count
Definition: GLee.h:963
size_t mColorRGBAOffset
Definition: DxVbo.h:158
void bufferTexCoords2d(size_t unit, const std::vector< Vec2f > &texCoords)
Definition: DxVbo.cpp:990
GLenum GLsizei n
Definition: GLee.h:5780
Vbo(bool createBuffer=false)
Definition: DxVbo.cpp:77
bool hasIndices() const
Definition: DxVbo.h:118
std::shared_ptr< Obj > Vbo::* unspecified_bool_type
Emulates shared_ptr-like behavior.
Definition: DxVbo.h:64
bool hasDynamicPositions() const
Definition: DxVbo.h:126
Layout()
Definition: DxVbo.h:77
D3D11_BIND_FLAG mTarget
Definition: DxVbo.h:55
size_t mColorRGBOffset
Definition: DxVbo.h:158
Obj()
Definition: DxVbo.cpp:68
const GLdouble * v
Definition: GLee.h:1384
static int sCustomAttrSizes[TOTAL_CUSTOM_ATTR_TYPES]
Definition: DxVbo.h:131
static GLenum sCustomAttrTypes[TOTAL_CUSTOM_ATTR_TYPES]
Definition: DxVbo.h:133
GLdouble GLdouble z
Definition: GLee.h:1911
std::shared_ptr< Obj > mObj
Definition: DxVbo.h:59
void setCustomVec3f(size_t index, const Vec3f &v)
Definition: DxVbo.h:238
void setStaticIndices()
Definition: DxVbo.h:121
void setDynamicTexCoords3d(size_t unit=0)
Definition: DxVbo.h:116
size_t getNumVertices() const
Definition: DxVbo.h:183
uint8_t * mDataEnd
Definition: DxVbo.h:271
bool hasDynamicColorsRGBA() const
Definition: DxVbo.h:96
size_t getIndex() const
Definition: DxVbo.h:245
bool hasStaticTexCoords() const
Definition: DxVbo.cpp:143
std::shared_ptr< Obj > VboMesh::* unspecified_bool_type
Emulates shared_ptr-like behavior.
Definition: DxVbo.h:216
D3D11_PRIMITIVE_TOPOLOGY mPrimitiveType
Definition: DxVbo.h:161
GLboolean GLboolean GLboolean GLboolean a
Definition: GLee.h:2964
size_t mNumIndices
Definition: DxVbo.h:153
virtual const char * what() const
Definition: DxVbo.h:296
int int int * dx
Definition: GLee.h:17162
bool hasStaticColorsRGB() const
Definition: DxVbo.h:89
void setTexCoord2d2(const Vec2f &t)
Definition: DxVbo.h:234
int mAttributes[ATTR_TOTAL]
Definition: DxVbo.h:139
static GLint sCustomAttrNumComponents[TOTAL_CUSTOM_ATTR_TYPES]
Definition: DxVbo.h:132
void addDynamicCustomVec2f()
Definition: DxVbo.h:135
uint8_t * mDataEnd
Definition: DxVbo.h:264
int GLint
Definition: gldx.h:51
GLsizeiptr const GLvoid GLenum usage
Definition: GLee.h:2089
uint8_t * mPtr
Definition: DxVbo.h:270
size_t mDynamicStride
Definition: DxVbo.h:160
virtual const char * what() const
Definition: DxVbo.h:286
void bufferData(size_t size, const void *data, D3D11_USAGE usage, D3D11_BIND_FLAG bindFlags, D3D11_CPU_ACCESS_FLAG cpuAccess)
Definition: DxVbo.cpp:91
size_t mTexCoordOffset[ATTR_MAX_TEXTURE_UNIT+1]
Definition: DxVbo.h:159
size_t mTexCoordOffset[ATTR_MAX_TEXTURE_UNIT+1]
Definition: DxVbo.h:274
void setTexCoord3d0(const Vec3f &t)
Definition: DxVbo.h:231
bool hasColorsRGB() const
Definition: DxVbo.h:88
bool hasStaticIndices() const
Definition: DxVbo.h:119
Vec3f * getPositionPointer() const
Definition: DxVbo.h:251
std::vector< std::pair< CustomAttr, size_t > > mCustomDynamic
Definition: DxVbo.h:140
bool hasDynamicTexCoords2d(size_t unit=0) const
Definition: DxVbo.h:102
void setDynamicColorsRGB()
Definition: DxVbo.h:92
size_t mColorRGBOffset
Definition: DxVbo.h:273
void bindAllData() const
Definition: DxVbo.cpp:763
GLdouble GLdouble t
Definition: GLee.h:1426
void setStaticNormals()
Definition: DxVbo.h:85
bool hasTexCoords3d(size_t unit=0) const
Definition: DxVbo.h:112
Definition: TriMesh.h:167
bool isDefaults() const
Definition: DxVbo.h:80
void setColorRGB(const Color &n)
Definition: DxVbo.h:228
void setStaticTexCoords3d(size_t unit=0)
Definition: DxVbo.h:115
void setPosition(float x, float y, float z)
Definition: DxVbo.h:226
void setDynamicTexCoords2d(size_t unit=0)
Definition: DxVbo.h:104
bool hasStaticTexCoords2d(size_t unit=0) const
Definition: DxVbo.h:101
GLsizeiptr size
Definition: GLee.h:2089
bool hasNormals() const
Definition: DxVbo.h:82
unsigned int GLenum
Definition: gldx.h:46
void setCustomFloat(size_t index, float v)
Definition: DxVbo.h:236
~Obj()
Definition: DxVbo.cpp:1234
void setDynamicIndices()
Definition: DxVbo.h:122
D3D11_PRIMITIVE_TOPOLOGY getPrimitiveType() const
Definition: DxVbo.h:184
Vbo mVbo
Definition: DxVbo.h:266