MCPcopy Create free account
hub / github.com/OGRECave/ogre / bindToGpu

Method bindToGpu

RenderSystems/GLSupport/src/OgreGLVertexArrayObject.cpp:102–133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

100 }
101
102 void GLVertexArrayObject::bindToGpu(GLRenderSystemCommon* rs,
103 VertexBufferBinding* vertexBufferBinding,
104 size_t vertexStart)
105 {
106 mAttribsBound.clear();
107 mInstanceAttribsBound.clear();
108
109 for (const auto& elem : mElementList)
110 {
111 uint16 source = elem.getSource();
112
113 if (!vertexBufferBinding->isBufferBound(source))
114 continue; // Skip unbound elements
115
116 VertexElementSemantic sem = elem.getSemantic();
117 unsigned short elemIndex = elem.getIndex();
118
119 uint32 attrib = (uint32)GLSLProgramCommon::getFixedAttributeIndex(sem, elemIndex);
120
121 const HardwareVertexBufferSharedPtr& vertexBuffer = vertexBufferBinding->getBuffer(source);
122
123 mAttribsBound.push_back(std::make_pair(attrib, vertexBuffer.get()));
124
125 rs->bindVertexElementToGpu(elem, vertexBuffer, vertexStart);
126
127 if (vertexBuffer->isInstanceData())
128 mInstanceAttribsBound.push_back(attrib);
129 }
130
131 mVertexStart = vertexStart;
132 mNeedsUpdate = false;
133 }
134}

Callers 2

_renderMethod · 0.80
_renderMethod · 0.80

Calls 7

getSourceMethod · 0.80
isBufferBoundMethod · 0.80
clearMethod · 0.45
getIndexMethod · 0.45
push_backMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected