mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-25 19:55:07 +02:00
can toggle hit effect on and off from a script
This commit is contained in:
parent
3439d45e0e
commit
e75a6feafe
6 changed files with 23 additions and 4 deletions
|
@ -3570,6 +3570,7 @@ void Application::displaySide(RenderArgs* renderArgs, Camera& theCamera, bool se
|
|||
renderContext._maxDrawnOverlay3DItems = sceneInterface->getEngineMaxDrawnOverlay3DItems();
|
||||
|
||||
renderContext._drawItemStatus = sceneInterface->doEngineDisplayItemStatus();
|
||||
renderContext._drawHitEffect = sceneInterface->doEngineDisplayHitEffect();
|
||||
|
||||
renderArgs->_shouldRender = LODManager::shouldRender;
|
||||
|
||||
|
|
|
@ -78,6 +78,9 @@ RenderDeferredTask::RenderDeferredTask() : Task() {
|
|||
|
||||
_jobs.push_back(Job(new DrawOverlay3D::JobModel("DrawOverlay3D")));
|
||||
_jobs.push_back(Job(new HitEffect::JobModel("HitEffect")));
|
||||
_jobs.back().setEnabled(false);
|
||||
_drawHitEffectJobIndex = _jobs.size() -1;
|
||||
|
||||
_jobs.push_back(Job(new ResetGLState::JobModel()));
|
||||
|
||||
|
||||
|
@ -106,6 +109,10 @@ void RenderDeferredTask::run(const SceneContextPointer& sceneContext, const Rend
|
|||
|
||||
// Make sure we turn the displayItemStatus on/off
|
||||
setDrawItemStatus(renderContext->_drawItemStatus);
|
||||
|
||||
//Make sure we display hit effect on screen, as desired from a script
|
||||
setDrawHitEffect(renderContext->_drawHitEffect);
|
||||
|
||||
|
||||
renderContext->args->_context->syncCache();
|
||||
|
||||
|
|
|
@ -71,9 +71,13 @@ public:
|
|||
render::Jobs _jobs;
|
||||
|
||||
int _drawStatusJobIndex = -1;
|
||||
int _drawHitEffectJobIndex = -1;
|
||||
|
||||
void setDrawItemStatus(bool draw) { if (_drawStatusJobIndex >= 0) { _jobs[_drawStatusJobIndex].setEnabled(draw); } }
|
||||
bool doDrawItemStatus() const { if (_drawStatusJobIndex >= 0) { return _jobs[_drawStatusJobIndex].isEnabled(); } else { return false; } }
|
||||
|
||||
void setDrawHitEffect(bool draw) { if (_drawHitEffectJobIndex >= 0) { _jobs[_drawHitEffectJobIndex].setEnabled(draw); } }
|
||||
bool doDrawHitEffect() const { if (_drawHitEffectJobIndex >=0) { return _jobs[_drawHitEffectJobIndex].isEnabled(); } else { return false; } }
|
||||
|
||||
virtual void run(const render::SceneContextPointer& sceneContext, const render::RenderContextPointer& renderContext);
|
||||
|
||||
|
|
|
@ -22,8 +22,9 @@ void main(void) {
|
|||
<$transformCameraViewport(cam, myViewport)$>
|
||||
vec2 center = vec2(myViewport.z/2.0, myViewport.w/2.0);
|
||||
float distFromCenter = distance(center, gl_FragCoord.xy);
|
||||
//normalize
|
||||
distFromCenter = distFromCenter/myViewport.z;
|
||||
float alpha = mix(0.0, 1.0, distFromCenter);
|
||||
gl_FragColor = vec4(0.7, 0.0, 0.0, alpha);
|
||||
//normalize distance from center based on average of screen width and height
|
||||
float normalizationFactor = (myViewport.z + myViewport.w)/2.0;
|
||||
distFromCenter = distFromCenter/normalizationFactor;
|
||||
float alpha = mix(0.0, 1.0, pow(distFromCenter, 1.5));
|
||||
gl_FragColor = vec4(1.0, 0.0, 0.0, alpha);
|
||||
}
|
|
@ -50,6 +50,7 @@ public:
|
|||
int _maxDrawnOverlay3DItems = -1;
|
||||
|
||||
bool _drawItemStatus = false;
|
||||
bool _drawHitEffect = false;
|
||||
|
||||
RenderContext() {}
|
||||
};
|
||||
|
|
|
@ -109,6 +109,9 @@ public:
|
|||
|
||||
Q_INVOKABLE void setEngineDisplayItemStatus(bool display) { _drawItemStatus = display; }
|
||||
Q_INVOKABLE bool doEngineDisplayItemStatus() { return _drawItemStatus; }
|
||||
|
||||
Q_INVOKABLE void setEngineDisplayHitEffect(bool display) { _drawHitEffect = display; }
|
||||
Q_INVOKABLE bool doEngineDisplayHitEffect() { return _drawHitEffect; }
|
||||
|
||||
signals:
|
||||
void shouldRenderAvatarsChanged(bool shouldRenderAvatars);
|
||||
|
@ -141,6 +144,8 @@ protected:
|
|||
int _maxDrawnOverlay3DItems = -1;
|
||||
|
||||
bool _drawItemStatus = false;
|
||||
|
||||
bool _drawHitEffect = false;
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue