6 #include <QOpenGLFunctions_3_2_Core>
10 #include "cannyedge.h"
12 #include "TransferWidget.hpp"
72 void resize(
int width,
int height);
148 void updateSlice(
int _value);
220 void prepareShaders();
221 void prepareTextures();
222 void prepareFramebuffers();
223 void prepareQuadVertexArrayObject();
224 void prepareCubeVertexArrayObject();
230 void renderCubeFrontfaces();
231 void renderCubeBackfaces();
233 void renderTextureToScreen(GLuint texture,
bool clearScreen =
true);
234 void renderTextureRectToScreen(GLuint texture,
bool clearScreen =
true);
235 void renderQImageToScreen(
const QImage &image,
bool clearScreen =
true);
239 QOpenGLContext *v_context;
241 QOpenGLFunctions_3_2_Core *v_funcs;
243 QOpenGLShaderProgram *v_sliceShader;
244 QOpenGLShaderProgram *v_cubeShader;
245 QOpenGLShaderProgram *v_rayShader;
246 QOpenGLShaderProgram *v_imageRectShader;
247 QOpenGLShaderProgram *v_imageShader;
249 QOpenGLFramebufferObject *v_frontFB;
250 QOpenGLFramebufferObject *v_backFB;
251 QOpenGLFramebufferObject *v_screenRectFB;
253 QOpenGLVertexArrayObject v_quad;
254 QOpenGLVertexArrayObject v_cube;
256 QOpenGLDebugLogger *m_logger;
258 float *verticesFullscreenQuad;
260 GLuint v_transferfunctionTex;
262 QImage junctionImage;
263 QImage xJunctionImage;
265 QMatrix4x4 vMatrixSlice;
271 QMatrix4x4 pMatrixVolume;
272 QMatrix4x4 vMatrixVolume;
273 QMatrix4x4 mMatrixVolume;
276 float volumeStepsize;
277 bool volumeShadedRendering;
283 QMatrix4x4 mvpMatrixScreenRect;
291 float inclinationView;
293 QVector3D viewPosVolume;
299 float *copyTransferfunctionValues;
326 #endif // RENDERWINDOW_H