void CPipelineState::SetIndexBuffer(SharedPointer<IIndexBuffer> inIndexBuffer) { IndexBuffer = std::dynamic_pointer_cast<CIndexBuffer>(inIndexBuffer); Window->MakeContextCurrent(); SafeGLCall(glBindVertexArray, (VertexArrayHandle)); SafeGLCall(glBindBuffer, (GL_ELEMENT_ARRAY_BUFFER, IndexBuffer->Handle)); SafeGLCall(glBindVertexArray, (0)); Loaded = false; }
SharedPointer<IPipelineState> CGraphicsContext::CreatePipelineState() { SharedPointer<CPipelineState> PipelineState = MakeShared<GL::CPipelineState>(Window); Window->MakeContextCurrent(); SafeGLCall(glGenVertexArrays, (1, & PipelineState->VertexArrayHandle)); return PipelineState; }