Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
CAMP
campvis-public
Commits
3d8aea3d
Commit
3d8aea3d
authored
Oct 15, 2014
by
Christian Schulte zu Berge
Browse files
Cleaned up CampVisPainter to fully match the new API.
parent
afa7bd28
Changes
3
Hide whitespace changes
Inline
Side-by-side
application/campvispainter.cpp
View file @
3d8aea3d
...
...
@@ -26,6 +26,7 @@
#include
"tgt/assert.h"
#include
"tgt/camera.h"
#include
"tgt/glcontextmanager.h"
#include
"tgt/quadric.h"
#include
"tgt/shadermanager.h"
#include
"tgt/texture.h"
...
...
@@ -48,8 +49,7 @@ namespace campvis {
,
_copyShader
(
nullptr
)
,
_errorTexture
(
nullptr
)
{
tgtAssert
(
getCanvas
()
!=
0
,
"The given canvas must not be 0!"
);
_dirty
=
true
;
tgtAssert
(
getCanvas
()
!=
nullptr
,
"The given canvas must not be 0!"
);
setPipeline
(
pipeline
);
}
...
...
@@ -58,7 +58,7 @@ namespace campvis {
}
void
CampVisPainter
::
paint
()
{
if
(
getCanvas
()
==
0
)
if
(
getCanvas
()
==
nullptr
)
return
;
if
(
_copyShader
==
nullptr
)
{
...
...
@@ -79,7 +79,7 @@ namespace campvis {
tgt
::
Shader
::
IgnoreUniformLocationErrorGuard
guard
(
_copyShader
);
// render whatever there is to render
if
(
rd
!=
0
||
(
repGL
!=
0
&&
repGL
->
getDimensionality
()
==
2
))
{
if
(
rd
!=
nullptr
||
(
repGL
!=
nullptr
&&
repGL
->
getDimensionality
()
==
2
))
{
_copyShader
->
setUniform
(
"_viewMatrix"
,
tgt
::
mat4
::
identity
);
// bind input textures
...
...
@@ -135,39 +135,33 @@ namespace campvis {
void
CampVisPainter
::
deinit
()
{
ShdrMgr
.
dispose
(
_copyShader
);
if
(
_pipeline
!=
0
)
{
_pipeline
->
s_renderTargetChanged
.
disconnect
(
this
);
if
(
getCanvas
()
->
getEventHandler
()
!=
0
)
if
(
_pipeline
!=
nullptr
)
{
if
(
getCanvas
()
->
getEventHandler
()
!=
nullptr
)
getCanvas
()
->
getEventHandler
()
->
removeEventListener
(
_pipeline
);
_pipeline
=
0
;
_pipeline
=
nullptr
;
}
}
void
CampVisPainter
::
setPipeline
(
AbstractPipeline
*
pipeline
)
{
tgtAssert
(
pipeline
!=
0
,
"The given pipeline must not be 0."
);
if
(
_pipeline
!=
0
)
{
_pipeline
->
s_renderTargetChanged
.
disconnect
(
this
);
if
(
getCanvas
()
->
getEventHandler
()
!=
0
)
tgtAssert
(
pipeline
!=
nullptr
,
"The given pipeline must not be 0."
);
if
(
_pipeline
!=
nullptr
)
{
if
(
getCanvas
()
->
getEventHandler
()
!=
nullptr
)
getCanvas
()
->
getEventHandler
()
->
removeEventListener
(
_pipeline
);
}
_pipeline
=
pipeline
;
_pipeline
->
s_renderTargetChanged
.
connect
(
this
,
&
CampVisPainter
::
onRenderTargetChanged
);
_pipeline
->
setRenderTargetSize
(
getCanvas
()
->
getSize
());
if
(
getCanvas
()
->
getEventHandler
()
!=
0
)
if
(
getCanvas
()
->
getEventHandler
()
!=
nullptr
)
getCanvas
()
->
getEventHandler
()
->
addEventListenerToFront
(
_pipeline
);
}
void
CampVisPainter
::
repaint
()
{
//GLJobProc.enqueueJob(getCanvas(), makeJobOnHeap(this, &CampVisPainter::paint), OpenGLJobProcessor::PaintJob);
}
void
CampVisPainter
::
onRenderTargetChanged
()
{
repaint
();
// do nothing, as the painting is entirely managed by the pipeline.
}
void
CampVisPainter
::
setCanvas
(
tgt
::
GLCanvas
*
canvas
)
{
tgtAssert
(
dynamic_cast
<
tgt
::
QtThreadedCanvas
*>
(
canvas
)
!=
0
,
"Canvas must be of type QtThreadedCanvas!"
);
tgtAssert
(
dynamic_cast
<
tgt
::
QtThreadedCanvas
*>
(
canvas
)
!=
nullptr
,
"Canvas must be of type QtThreadedCanvas!"
);
Painter
::
setCanvas
(
canvas
);
}
...
...
application/campvispainter.h
View file @
3d8aea3d
...
...
@@ -91,10 +91,6 @@ namespace campvis {
void
setErrorTexture
(
tgt
::
Texture
*
texture
);
/**
* Slot being notified when the pipeline's render target changed.
*/
void
onRenderTargetChanged
();
private:
/**
...
...
@@ -106,10 +102,7 @@ namespace campvis {
AbstractPipeline
*
_pipeline
;
///< Pipeline to render
tgt
::
Shader
*
_copyShader
;
///< Shader for copying the render target to the framebuffer.
tbb
::
atomic
<
bool
>
_dirty
;
///< Flag whether render result is dirty and needs to be rerendered.
std
::
condition_variable
_renderCondition
;
///< conditional wait condition for rendering
tgt
::
Texture
*
_errorTexture
;
tgt
::
Texture
*
_errorTexture
;
///< Pointer to error texture
};
}
...
...
core/pipeline/abstractpipeline.cpp
View file @
3d8aea3d
...
...
@@ -138,7 +138,6 @@ namespace campvis {
executePipeline
();
// paint on canvas
// FIXME: clean up the whole painter crap...
_canvas
->
getPainter
()
->
paint
();
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment