namespace RFK

Namespace of all REDFramework interfaces and classes.

Classes:

structEventInfo
classTutorialApplication
classUserVariable

Enumerations:

enumCHOICE { YES =  0, NO =  1, OK =  2, CANCEL =  3 }
enumEVENT { EVT_ERROR =  0, EVT_INIT =  1, EVT_UPDATE =  2, EVT_RENDER_COMPLETE =  3, EVT_CLOSE =  4, EVT_RESIZE =  5, EVT_PAINT =  6, EVT_MOUSE =  7, EVT_KEY_PRESSED =  8, EVT_KEY_RELEASED =  9, EVT_UVAR =  10, EVT_DRAG_ENTER =  11, EVT_DROP_FILE =  12, EVT_ITEM_SELECT =  13, EVT_CLOSE_INSPECTOR =  14, EVT_COUNT =  15 }
enumEVENT_ERROR { EVT_ERR_NO_NETWORK =  0, EVT_ERR_DOWNLOAD_FAILED =  1, EVT_ERR_MISSING_DEPENDENCY =  2 }
enumEVENT_FLAG { EVT_FLAG_ERROR =  1 << 0, EVT_FLAG_MOUSE_POS =  1 << 1, EVT_FLAG_MOUSE_BUTTONS =  1 << 2, EVT_FLAG_MOUSE_WHEEL =  1 << 3, EVT_FLAG_KEY =  1 << 4, EVT_FLAG_RESIZE =  1 << 5, EVT_FLAG_UVAR =  1 << 6, EVT_FLAG_PATH =  1 << 7 }
enumINSPECTOR { IPR_GEOMETRY =  0, IPR_UVAR =  1, IPR_TONEMAPPING =  2, IPR_PERFORMANCE =  3, IPR_SCENEGRAPH =  4, IPR_MEMORY =  5, IPR_LIGHT =  6, IPR_MATERIAL =  7, IPR_TRANSFORM =  8, IPR_VIEWPOINT =  9 }
enumKEYBOARD_KEY { KEY_ESCAPE =  0x01000000, KEY_TAB =  0x01000001, KEY_RETURN =  0x01000004, KEY_SPACE =  0x20, KEY_SHIFT =  0x01000020, KEY_LEFT =  0x01000012, KEY_UP =  0x01000013, KEY_RIGHT =  0x01000014, KEY_DOWN =  0x01000015, KEY_LSHIFT =  0x01000020, KEY_LCTRL =  0x01000021, KEY_MINUS =  0x2d, KEY_PLUS =  0x2b }
enumLOOP_MODE { LM_ACTIVE =  0, LM_PASSIVE =  1, LM_SOFTWARE_BY_SURFACE =  2, LM_SOFTWARE_BY_BLOCKS =  3, LM_SOFTWARE_PATH_TRACING =  4, LM_CUSTOM =  5, LM_CONSOLE =  6 }
enumUVAR_TYPE { UVT_BOOL =  0, UVT_CHAR =  1, UVT_SHORT =  2, UVT_INT =  3, UVT_FLOAT =  4, UVT_DOUBLE =  5, UVT_STRING =  6, UVT_LIST =  7, UVT_FILE =  8 }
enumUVAR_WIDGET { UVW_SLIDER =  0, UVW_EDIT =  1, UVW_VIEW =  2 }

Typedefs:

typedef RED_RC(*COMMAND_CALLBACK )(int iCommand)
typedef RED_RC(*EVENT_CALLBACK )(EventInfo &iEventInfo, void *iParam)

Enumerations documentation

Enumerator:

YES
NO
OK
CANCEL

Lists the supported application events.

Enumerator:

EVT_ERROR

This event occurs after an error in the application.

EVT_INIT

This event occurs after the framework is initialized and before the application window content is drawn for the first time.

EVT_UPDATE

This event occurs at each main loop frame before the rendering.

EVT_RENDER_COMPLETE

This event occurs once the rendering is done in software modes or after each RED::IWindow::FrameDrawing in hardware modes.

EVT_CLOSE

This event occurs just before the application is closed.

EVT_RESIZE

This event occurs after a resize of the application window.

EVT_PAINT

This event occurs each time the application window is drawn.

EVT_MOUSE

This event occurs each time the mouse is used (including mouse move and mouse button events).

EVT_KEY_PRESSED

This event occurs each time a keyboard key is pressed.

EVT_KEY_RELEASED

This event occurs each time a keyboard key is released.

EVT_UVAR

This event occurs when a user variable is modified.

EVT_DRAG_ENTER

This event occurs when a single file is dragged and the mouse cursor enters the application layout. The application must reject or accept the drag operation by clearing or not the dragged file path.

EVT_DROP_FILE

A file has been dropped over the application after the acceptance of the corresponding EVT_DRAG_ENTER event.

EVT_ITEM_SELECT

An object has been selected. It could be from any inspector.

EVT_CLOSE_INSPECTOR
EVT_COUNT

Describes the type of errors that can be set in a EVT_ERROR event.

Enumerator:

EVT_ERR_NO_NETWORK

A network connection is needed but can't be initialiazed.

EVT_ERR_DOWNLOAD_FAILED

A download operation has failed.

EVT_ERR_MISSING_DEPENDENCY

A needed application dependency is missing.

Describes the meaningful fields in a EventInfo structure. The _flags value in an EventInfo variable can be any combination of the following flags.

Enumerator:

EVT_FLAG_ERROR

The "_error" and "_error_string" fields are valid.

EVT_FLAG_MOUSE_POS

The "_mouse_x" and "_mouse_y" fields are valid.

EVT_FLAG_MOUSE_BUTTONS

The "_mouse_left", "_mouse_right" and "_mouse_middle" fields are valid.

EVT_FLAG_MOUSE_WHEEL

The "_mouse_wheel" is valid.

EVT_FLAG_KEY

The "_key" is valid.

EVT_FLAG_RESIZE

The "_win_width" and "_win_height" fields are valid.

EVT_FLAG_UVAR

The "_uvar" field is valid.

EVT_FLAG_PATH

The "_path" field is valid (set by a EVT_DRAG_ENTER or EVT_DROP_FILE event).

Describes the available inspectors.

Enumerator:

IPR_GEOMETRY

Geometry inspector.

IPR_UVAR

User variables inspector.

IPR_TONEMAPPING

Tone mapping parameters inspector.

IPR_PERFORMANCE

Performance inspector.

IPR_SCENEGRAPH

Scene graph inspector.

IPR_MEMORY

Memory inspector.

IPR_LIGHT

Light inspector.

IPR_MATERIAL

Material inspector.

IPR_TRANSFORM

Transform inspector.

IPR_VIEWPOINT

Viewpoint inspector.

Lists the possible modes used for the rendering of an image once we've step into the RFK::TutorialApplication::MainLoop method. The loop mode can be chosen using RFK::TutorialApplication::SetLoopMode.

Enumerator:

LM_ACTIVE

Frames are continuously rendered. The application does not wait for new events to render another frame. The OnUpdate callback is called every frame before the rendering.

LM_PASSIVE

A frame is only rendered when a camera movement or when an user interaction with the scene has occured. The application waits for user input events to be emitted before rendering.

LM_SOFTWARE_BY_SURFACE

A frame is rendered using the software ray-tracer for the main camera of the window. At least a ray-tracer option must be set for this loop to be effective. The application must have been initialized with the hybrid flag set to true.

LM_SOFTWARE_BY_BLOCKS

A loop similar to RFK::LM_SOFTWARE_BY_SURFACE, but for which RED::IWindow::FrameTracing is configured to render the frame by blocks. This is used for scenes that have a big calculation time per pixel, to preserve the feedback.

LM_SOFTWARE_PATH_TRACING

A loop similar to RFK::LM_SOFTWARE_BY_SURFACE, but for which RED::IWindow::FrameTracing is configured to render the frame using path-tracing.

LM_CUSTOM

Using this loop mode, the window drawing and transaction management is entirely turned off and let under the application control.

LM_CONSOLE

Using this loop mode, the application runs in console mode. No GUI is displayed and therefore, no windows manager is required.

Describes the various user variable types.

Enumerator:

UVT_BOOL
UVT_CHAR
UVT_SHORT
UVT_INT
UVT_FLOAT
UVT_DOUBLE
UVT_STRING
UVT_LIST
UVT_FILE

Describes the various user variable widgets.

Enumerator:

UVW_SLIDER

Uses a slider to edit the user variable.

UVW_EDIT

Uses a text input to edit the user variable.

UVW_VIEW

The user variable can only be viewed. It can't be modified.

Types documentation

typedef RED_RC(* RFK::COMMAND_CALLBACK)(int iCommand)

User command callback.

If the call succeeds, the callback must return RED_OK.

typedef RED_RC(* RFK::EVENT_CALLBACK)(EventInfo &iEventInfo, void *iParam)

User event callback.

If the call succeeds, the callback must return RED_OK.