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

Method _render

RenderSystems/GL/src/OgreGLRenderSystem.cpp:2121–2267  ·  view source on GitHub ↗

---------------------------------------------------------------------

Source from the content-addressed store, hash-verified

2119 }
2120 //---------------------------------------------------------------------
2121 void GLRenderSystem::_render(const RenderOperation& op)
2122 {
2123 // Call super class
2124 RenderSystem::_render(op);
2125
2126 mMaxBuiltInTextureAttribIndex = 0;
2127
2128 const VertexDeclaration::VertexElementList& decl =
2129 op.vertexData->vertexDeclaration->getElements();
2130 VertexDeclaration::VertexElementList::const_iterator elemIter, elemEnd;
2131 elemEnd = decl.end();
2132
2133 for (elemIter = decl.begin(); elemIter != elemEnd; ++elemIter)
2134 {
2135 const VertexElement & elem = *elemIter;
2136 size_t source = elem.getSource();
2137
2138 if (!op.vertexData->vertexBufferBinding->isBufferBound(source))
2139 continue; // skip unbound elements
2140
2141 HardwareVertexBufferSharedPtr vertexBuffer =
2142 op.vertexData->vertexBufferBinding->getBuffer(source);
2143
2144 bindVertexElementToGpu(elem, vertexBuffer, op.vertexData->vertexStart);
2145 }
2146
2147 auto numberOfInstances = op.numberOfInstances;
2148
2149 bool multitexturing = (getCapabilities()->getNumTextureUnits() > 1);
2150 if (multitexturing)
2151 glClientActiveTextureARB(GL_TEXTURE0);
2152
2153 // Find the correct type to render
2154 GLint primType;
2155 switch (op.operationType)
2156 {
2157 case RenderOperation::OT_POINT_LIST:
2158 primType = GL_POINTS;
2159 break;
2160 case RenderOperation::OT_LINE_LIST:
2161 primType = GL_LINES;
2162 break;
2163 case RenderOperation::OT_LINE_LIST_ADJ:
2164 primType = GL_LINES_ADJACENCY_EXT;
2165 break;
2166 case RenderOperation::OT_LINE_STRIP:
2167 primType = GL_LINE_STRIP;
2168 break;
2169 case RenderOperation::OT_LINE_STRIP_ADJ:
2170 primType = GL_LINE_STRIP_ADJACENCY_EXT;
2171 break;
2172 default:
2173 case RenderOperation::OT_TRIANGLE_LIST:
2174 primType = GL_TRIANGLES;
2175 break;
2176 case RenderOperation::OT_TRIANGLE_LIST_ADJ:
2177 primType = GL_TRIANGLES_ADJACENCY_EXT;
2178 break;

Callers 1

updateMethod · 0.45

Calls 9

getCapabilitiesFunction · 0.85
getSourceMethod · 0.80
isBufferBoundMethod · 0.80
endMethod · 0.45
beginMethod · 0.45
bindGLBufferMethod · 0.45
getGLBufferIdMethod · 0.45
getTypeMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected