![]() |
![]() |
![]() |
V_Sim API - Reference Manual | ![]() |
---|---|---|---|---|
#define EXT_FOG_AND_BG_ID OpenGLExtension* extFogAndBGInit (); #define MASK_FOG_START #define MASK_FOG_END void fogCreate (VisuData *data); void fogCreate_color (); float fogGet_end (); gboolean fogGet_isOn (); float fogGet_start (); gboolean fogGet_useSpecificColor (); gboolean fogSet_isOn (gboolean value); gboolean fogSet_startEndValues (float startEnd[2], int mask); gboolean fogSet_useSpecificColor (gboolean value); void fogGet_value (float rgba[4]); int fogSet_values (float rgba[4], int mask); void bgGet_value (float rgba[4]); int bgSet_values (float rgba[3], int mask); void bgSet_image (const guchar *imageData, guint width, guint height, gboolean alpha, const gchar *title);
This module is used to support a background colour and to tune the fog. This last one can be turn on or off and its colour can be either a user defined one or the one of the background. The fog is a linear blending into the fog colour. It starts at a given z position (in the camera basis set) and ends at a lower z.
#define EXT_FOG_AND_BG_ID "FogAndColor"
The id used to identify this extension, see
OpenGLExtensionRebuild_list()
for instance.
OpenGLExtension* extFogAndBGInit ();
It initialises all variables of the OpenGL extension.
It creates all resources and parameters introduced by
this extension.
This method should be added in the listInitExtensionFunc
to
be called automatically by the initOpenGLExtensions()
at V_Sim
startup.
Returns : | a pointer to the OpenGLExtension it created or NULL otherwise. |
#define MASK_FOG_START (1 << 0)
Value used by the second parameter of setFogStartEndValues()
to
specified the value that must be changed. This actually changes
the fog_start value.
#define MASK_FOG_END (1 << 1)
Value used by the second parameter of setFogStartEndValues()
to
specified the value that must be changed. This actually changes
the fog_end value.
void fogCreate (VisuData *data);
Call the OpenGL routine to enable and initialise the fog.
data : |
the VisuData object the fog apply to. |
void fogCreate_color ();
Call the OpenGL routines that change the colour of the fog.
float fogGet_end ();
Read the ending value of the fog (in [0;1]).
Returns : | the position where the fog ends. |
gboolean fogGet_isOn ();
Read if fog is used or not.
Returns : | TRUE if the fog is rendered, FALSE otherwise. |
float fogGet_start ();
Read the starting value of the fog (in [0;1]).
Returns : | the position where the fog starts. |
gboolean fogGet_useSpecificColor ();
Read if fog uses a specific colour or not.
Returns : | TRUE if the fog uses its own color or FALSE if it uses the color of the background. |
gboolean fogSet_isOn (gboolean value);
Method used to change the value of the parameter fog_is_on.
value : |
TRUE if fog must be rendered, FALSE otherwise. |
Returns : | FALSE if redrawing is not necessary. TRUE if the rendering window must be redrawn. |
gboolean fogSet_startEndValues (float startEnd[2], int mask);
Method used to change the value of the parameters fog_start and fog_end.
startEnd : |
a two floats array with values (0 <= values <= 1) for the beging and the ending of the fog position. Only values specified by the mask are really relevant. |
mask : |
use MASK_FOG_START, MASK_FOG_END to indicate what values in the startEnd array must be taken into account. |
Returns : | TRUE if fogCreate() should be called and then 'OpenGLAskForReDraw'
signal be emitted.
|
gboolean fogSet_useSpecificColor (gboolean value);
Method used to change the value of the parameter fog_color_is_specific.
value : |
TRUE if fog is rendered with its own color specified
by setFogRGBValues() or FALSE if the fog uses the background
color.
|
Returns : | TRUE if fogCreate() should be called. In all cases, 'OpenGLAskForReDraw'
signal should then be emitted.
|
void fogGet_value (float rgba[4]);
Read the RGBA value of the specific fog colour (in [0;1]).
rgba : |
a storage for four values. |
int fogSet_values (float rgba[4], int mask);
Method used to change the value of the parameter fog_specific_color.
This color is actually used only if fog_color_is_specific is set to 1,
use setFogColorSpecific()
to do that.
rgba : |
a three floats array with values (0 <= values <= 1) for the red, the green and the blue color. Only values specified by the mask are really relevant. |
mask : |
use MASK_RGB_R, MASK_RGB_G, MASK_RGB_B, MASK_RGB_ALL or a combinaison to indicate what values in the rgb array must be taken into account. |
Returns : | 0 if redrawing is not necessary. 1 if the rendering window must be redrawn. |
void bgGet_value (float rgba[4]);
Read the RGBA value of the specific background colour (in [0;1]).
rgba : |
a storage for four values. |
int bgSet_values (float rgba[3], int mask);
Method used to change the value of the parameter background_color.
rgba : |
a three floats array with values (0 <= values <= 1) for the red, the green and the blue color. Only values specified by the mask are really relevant. |
mask : |
use MASK_RGB_R, MASK_RGB_G, MASK_RGB_B, MASK_RGB_ALL or a combinaison to indicate what values in the rgb array must be taken into account. |
Returns : | 0 if redrawing is not necessary. 1 if the rendering window must be redrawn. |
void bgSet_image (const guchar *imageData, guint width, guint height, gboolean alpha, const gchar *title);
Draw the imageData
on the background. The image is scaled to the
viewport dimensions, keeping the width/height ratio. If title
is
not NULL, the title is also printed on the background. The image
data are copied and can be free after this call.
imageData : |
raw image data in RGB or RGBA format ; |
width : |
the width ; |
height : |
the height ; |
alpha : |
TRUE if the image is RGBA ; |
title : |
an optional title (can be NULL). |