- [ ] Shader wrapper class - Load shaders (vertex + fragment) from file - [ ] Vertex buffer (+array) wrapper class - We need a resize operation `glBufferData(NULL)`. - We need an operation to set new contents. Get pointer via `glMapBuffer`/`glMapBufferRange`. `std::memcpy` for speed? - [ ] Texture wrapper class - Allocate a certain size (don't fill): ``` glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL) ``` - Probably need to call `glViewport` with these sizes before rendering. - [ ] Framebuffer wrapper class - Need to be able to set (and swap) the bound texture (for when the viewport size changes). ``` glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0); ``` - Can we make do without calling `glDrawBuffers(GL_COLOR_ATTACHMENT0)`? - [ ] Line plotting class - [ ] Shaders - Needs to handle an arbitrary number of lines. We probably want to plot all channels at the same time for performance reasons? - Figure out how to handle that the selected channel is plotted "on top". Something with the depth (z-axis)? - [ ] Heatmap plotting class - [ ] Shaders - [ ] Render with `ImPlot::Image(<texture>)`
glBufferData(NULL).glMapBuffer/glMapBufferRange.std::memcpyfor speed?glViewportwith these sizes before rendering.glDrawBuffers(GL_COLOR_ATTACHMENT0)?ImPlot::Image(<texture>)