Scanframe Modular Application 0.1.0
Loading...
Searching...
No Matches
sf::xgl::DemoRenderer Class Reference

#include <DemoRenderer.h>

Inheritance diagram for sf::xgl::DemoRenderer:
[legend]
Collaboration diagram for sf::xgl::DemoRenderer:
[legend]

Public Types

enum  FragmentProgram : int { fpPassthrough = 0 , fpSpotlight = 1 }
 Enumeration of available shader inner programs passed to #ShaderProgram::Uniform::uProgram uniform. More...

Public Member Functions

 DemoRenderer (OpenGLWidget *widget, ShaderProgram *sp)
 ~DemoRenderer () override
void start (int msecs)
void setIndexValue (int index, QVariant value) override
 Sets an arbitrary value on the derived- or subclass.
Public Member Functions inherited from sf::OpenGLRenderer
 OpenGLRenderer (OpenGLWidget *widget, QOpenGLShaderProgram *sp)
 Constructor passing the widget which has the OpenGL context. The owner is the shader program object.
 ~OpenGLRenderer () override=default
 Virtual destructor.
bool setup ()
 Call overridden method generate() after the shader program has been linked.
void render ()
 Call overridden method render() after the shader program has been linked.
OpenGLWidget * getWidget () const
 Gets the owning widget which is calling the shots.
QOpenGLShaderProgram * getShaderProgram () const
 Gets shader program given in the constructor.
virtual void addRenderObject (OpenGLRenderObject *ro, bool append=true)
 Adds an object to be rendered. The order of addition determines the outcome when transparency is involved. When an object is destroyed, it is removed from the list using the 'destroyed' signal.
Q_SIGNAL void rendering ()
 Signal emitted at the start of the render() method.

Protected Member Functions

void generate () override
 Called by setup() and (re-)generates the vertices for the drawn 3D-objects.
void paint () override
 Called by from the render() method.
void draw () override
 Called by from the render() method.
void timerEvent (QTimerEvent *event) override
void changedProperty () override
 Called by sf::OpenGLWidget when a property has changed.
void notify (void *)

Properties

QColor lightColor
float cutoffAngle
float ambientStrength
float diffuseStrength
float specularStrength
float shininess
FragmentProgram fragmentProgram
int objectIndex

Additional Inherited Members

Static Public Member Functions inherited from sf::OpenGLRenderer
static void initialize (OpenGLWidget *widget)
 Called by sf::OpenGLWidget::initializeGL to initialize the OpenGL context for derived classes.
Protected Attributes inherited from sf::OpenGLRenderer
OpenGLRenderObject::List _renderObjects
 Holds the list of objects to render.
const QMatrix4x4 & _projectionMatrix
 Easy of access reference to the projection matrix from the widget.
const QMatrix4x4 & _cameraMatrix
 Easy of access reference to the camera matrix from the sf::OpenGLWidget.
const QMatrix4x4 & _lightPositionMatrix
 Easy of access reference to the light position matrix from the sf::OpenGLWidget.
const QMatrix4x4 & _lightDirectionMatrix
 Easy of access reference to the light direction matrix from the sf::OpenGLWidget.
const QMatrix4x4 & _modelMatrix
 Easy of access reference to the model matrix from the sf::OpenGLWidget.

Member Enumeration Documentation

◆ FragmentProgram

Enumeration of available shader inner programs passed to #ShaderProgram::Uniform::uProgram uniform.

Enumerator
fpPassthrough 

No manipulation by the fragment shader.

fpSpotlight 

Applies the spotlight defined by #ShaderProgram::Uniform::uLightPosition and other uniforms.

Constructor & Destructor Documentation

◆ DemoRenderer()

sf::xgl::DemoRenderer::DemoRenderer ( OpenGLWidget * widget,
ShaderProgram * sp )
explicit

◆ ~DemoRenderer()

sf::xgl::DemoRenderer::~DemoRenderer ( )
override

Member Function Documentation

◆ changedProperty()

void sf::xgl::DemoRenderer::changedProperty ( )
overrideprotectedvirtual

Called by sf::OpenGLWidget when a property has changed.

Implements sf::OpenGLRenderer.

◆ draw()

void sf::xgl::DemoRenderer::draw ( )
overrideprotectedvirtual

Called by from the render() method.

Implements sf::OpenGLRenderer.

◆ generate()

void sf::xgl::DemoRenderer::generate ( )
overrideprotectedvirtual

Called by setup() and (re-)generates the vertices for the drawn 3D-objects.

Implements sf::OpenGLRenderer.

◆ notify()

void sf::xgl::DemoRenderer::notify ( void * )
protected

◆ paint()

void sf::xgl::DemoRenderer::paint ( )
overrideprotectedvirtual

Called by from the render() method.

Implements sf::OpenGLRenderer.

◆ setIndexValue()

void sf::xgl::DemoRenderer::setIndexValue ( int index,
QVariant value )
overridevirtual

Sets an arbitrary value on the derived- or subclass.

Parameters
indexIndex like in an array.
valueVariant able to accept any value.

Implements sf::OpenGLRenderer.

◆ start()

void sf::xgl::DemoRenderer::start ( int msecs)

◆ timerEvent()

void sf::xgl::DemoRenderer::timerEvent ( QTimerEvent * event)
overrideprotected

Property Documentation

◆ ambientStrength

float sf::xgl::DemoRenderer::ambientStrength
readwrite

◆ cutoffAngle

float sf::xgl::DemoRenderer::cutoffAngle
readwrite

◆ diffuseStrength

float sf::xgl::DemoRenderer::diffuseStrength
readwrite

◆ fragmentProgram

FragmentProgram sf::xgl::DemoRenderer::fragmentProgram
readwrite

◆ lightColor

QColor sf::xgl::DemoRenderer::lightColor
readwrite

◆ objectIndex

int sf::xgl::DemoRenderer::objectIndex
readwrite

◆ shininess

float sf::xgl::DemoRenderer::shininess
readwrite

◆ specularStrength

float sf::xgl::DemoRenderer::specularStrength
readwrite

The documentation for this class was generated from the following file: