Bliting Surfaces, Animations and Fonts and setting the transformations directly
[Advances methods for bliting directly to the screen without using entities. It uses IND_Render methods (recommended only for advanced IndieLib users)]


Advanced 2d bliting methods (it's preferible to use IND_Entity2d together with IND_Entity2dManager instead)

void IND_Render::BlitSurface (IND_Surface *pSu)
void IND_Render::BlitGrid (IND_Surface *pSu, byte pR, byte pG, byte pB, byte pA)
bool IND_Render::BlitRegionSurface (IND_Surface *pSu, int pX, int pY, int pWidth, int pHeight)
bool IND_Render::BlitWrapSurface (IND_Surface *pSu, int pWidth, int pHeight, float pUDisplace, float pVDisplace)
int IND_Render::BlitAnimation (IND_Animation *pAn, int pSequence, int pX, int pY, int pWidth, int pHeight, bool pToggleWrap, float pUDisplace, float pVDisplace)
void IND_Render::BlitText (IND_Font *pFo, char *pText, int pX, int pY, int pOffset, int pLineSpacing, byte pR, byte pG, byte pB, byte pA, byte pFadeR, byte pFadeG, byte pFadeB, byte pFadeA, IND_Filter pFilter, IND_BlendingType pSo, IND_BlendingType pDs, IND_Align pAlign)

Advanced transformations methods (it's preferible to use IND_Entity2d and IND_Entity3d instead)

void IND_Render::SetTransform2d (int pX, int pY, float pAngleX, float pAngleY, float pAngleZ, float pScaleX, float pScaleY, int pAxisCalX, int pAxisCalY, bool pMirrorX, bool pMirrorY, int pWidth, int pHeight, IND_Matrix *pMatrix)
void IND_Render::SetRainbow2d (IND_Type pType, bool pCull, bool pMirrorX, bool pMirrorY, IND_Filter pFilter, byte pR, byte pG, byte pB, byte pA, byte pFadeR, byte pFadeG, byte pFadeB, byte pFadeA, IND_BlendingType pSo, IND_BlendingType pDs)
void IND_Render::SetTransform3d (float pX, float pY, float pZ, float pAngleX, float pAngleY, float pAngleZ, float pScaleX, float pScaleY, float pScaleZ, IND_Matrix *pMatrix)
void IND_Render::SetRainbow3d (bool pCull, bool pFlipNormals, IND_Filter pFilter, byte pR, byte pG, byte pB, byte pA, byte pFadeR, byte pFadeG, byte pFadeB, byte pFadeA, IND_BlendingType pSo, IND_BlendingType pDs)
void IND_Render::LookAt (float pEyeX, float pEyeY, float pEyeZ, float pLookAtX, float pLookAtY, float pLookAtZ, float pUpX, float pUpY, float pUpZ)
void IND_Render::PerspectiveFov (float pFov, float pAspect, float pNearClippingPlane, float pFarClippingPlane)
void IND_Render::PerspectiveOrtho (float pWidth, float pHeight, float pNearClippingPlane, float pFarClippingPlane)

Detailed Description

With these methods you can set the 2d transformations (using IND_Render::Set2dTransform) and color attributes (using IND_Render::SetRainbow()) and to blit directly to the screen surfaces, animations, and fonts using IND_Render class.

Remember that you can use IND_Entity2d together with IND_Entity2dManager for drawing these graphical objects to the screen without having to use this advanced methods directly. This method are only useful for advanced users for really concrete purposes.


Function Documentation

void IND_Render::BlitSurface ( IND_Surface pSu  )  [inline, inherited]

Parameters:

Operation:

This function blits directly to the screen a IND_Surface object.

In order to change the transformations and color attributes of the surface you have to use the IND_Render::SetTransform2d() and IND_Render::SetRainbow2d() methods before calling to this function. Remember that you can use IND_Entity2d object for drawing surfaces to the screen without having to use this advanced methods directly. This method is only useful for advanced users for really concrete purposes.

This method is equivalent to use:

void IND_Render::BlitGrid ( IND_Surface pSu,
byte  pR,
byte  pG,
byte  pB,
byte  pA 
) [inline, inherited]

Parameters:

Operation:

This function blits directly to the screen the grid of an IND_Surface object.

This method is equivalent to use:

bool IND_Render::BlitRegionSurface ( IND_Surface pSu,
int  pX,
int  pY,
int  pWidth,
int  pHeight 
) [inline, inherited]

Parameters:

Operation:

This function returns 1 (true) if it blits directly to the screen a region of a IND_Surface object.

This method is useful when we want to render only a certain region of a IND_Surface.

If the region that we chose is out of the range of the sprite, the function will return false and no region will be rendered.

Special remark: this function only works with IND_Surface objects that only have ONE texture assigned (you can check this using::IND_Surface::GetNumTextures() method). So, it will work only with images that are power of two and lower than the maximum texture size allowed by your card (you can check this parameter using IND_Render::GetMaxTextureSize()). The method will return 0 otherwise.

In order to change the transformations and color attributes of the surface you have to use the IND_Render::SetTransform2d() and IND_Render::SetRainbow2d() methods before calling to this function. Remember that you can use IND_Entity2d object for drawing surfaces to the screen without having to use this advanced methods directly. This method is only useful for advanced users for really concrete purposes.

This method is equivalent to use a combination of this methods:

bool IND_Render::BlitWrapSurface ( IND_Surface pSu,
int  pWidth,
int  pHeight,
float  pUDisplace,
float  pVDisplace 
) [inline, inherited]

Parameters:

Operation:

This function returns 1 (true) if it blits directly to the screen a IND_Surface object tiling it both in X and Y coordinates.

This method is useful when we want to render a tiled texture or background.

Special remark: this function only works with IND_Surface objects that only have ONE texture assigned (you can check this using::IND_Surface::GetNumTextures() method). So, it will work only with images that are power of two and lower than the maximum texture size allowed by your card (you can check this parameter using IND_Render::GetMaxTextureSize()). The method will return 0 otherwise.

In order to change the transformations and color attributes of the surface you have to use the IND_Render::SetTransform2d() and IND_Render::SetRainbow2d() methods before calling to this function. Remember that you can use IND_Entity2d object for drawing surfaces to the screen without having to use this advanced methods directly. This method is only useful for advanced users for really concrete purposes.

This method is equivalent to use a combination of this methods:

int IND_Render::BlitAnimation ( IND_Animation pAn,
int  pSequence,
int  pX,
int  pY,
int  pWidth,
int  pHeight,
bool  pToggleWrap,
float  pUDisplace,
float  pVDisplace 
) [inline, inherited]

Parameters:

Operation:

This function blits directly to the screen a certain sequence of a IND_Animation object.

Each frame of the animation will be blited to the screen the number of milliseconds that are defined in the animation script file. The sequecen starts in the frame 0 and finishes in the last frame specefied in the animation script. The animation will be displayed only one time, after that it will stop in the last frame (bliting it permanently).

This functions returns -1 when the animation finishes, 0 if there is any error (for example trying to blit an invalid IND_Animation pointer) and 1 if is in the middle of the animation and there are no errors.

In order to change the transformations and color attributes of the animation you have to use the IND_Render::SetTransform2d() and IND_Render::SetRainbow2d() methods before calling to this function. Remember that you can use IND_Entity2d object for drawing animations to the screen without having to use this advanced methods directly. This method is only useful for advanced users for really concrete purposes.

Special remark: if you specify a region this function only works with IND_Surface objects that only have ONE texture assigned (you can check this using::IND_Surface::GetNumTextures() method). So, it will work only with images that are power of two and lower than the maximum texture size allowed by your card (you can check this parameter using IND_Render::GetMaxTextureSize()). The method will return 0 otherwise.

This method is equivalent to use a combination of this methods:

void IND_Render::BlitText ( IND_Font pFo,
char *  pText,
int  pX,
int  pY,
int  pOffset,
int  pLineSpacing,
byte  pR,
byte  pG,
byte  pB,
byte  pA,
byte  pFadeR,
byte  pFadeG,
byte  pFadeB,
byte  pFadeA,
IND_Filter  pLinearFilter,
IND_BlendingType  pSo,
IND_BlendingType  pDs,
IND_Align  pAlign 
) [inline, inherited]

Parameters:

Operation:

This function blits directly to the screen a text using IND_Font object.

Important: you can not change the transformation or color attributes of the font using IND_Render::SetTransform2d() or IND_Render::SetRainbow().

Remember that you can use IND_Entity2d object for drawing fonts to the screen without having to use this advanced methods directly. This method is only useful for advanced users for really concrete purposes.

This method is equivalent to use a combination of this methods:

void IND_Render::SetTransform2d ( int  pX,
int  pY,
float  pAngleX,
float  pAngleY,
float  pAngleZ,
float  pScaleX,
float  pScaleY,
int  pAxisCalX,
int  pAxisCalY,
bool  pMirrorX,
bool  pMirrorY,
int  pWidth,
int  pHeight,
IND_Matrix pMatrix 
) [inline, inherited]

Parameters:

This function sets the 2d transformation (translation, rotation, scaling, mirroring and hotspot) of the following 2d graphical objects that will be rendered by the engine. You should use this method before calling to any of the Bliting methods.

Remember that you can use IND_Entity2d object for applying 2d transformations to the graphical objects without having to use this advanced method directly. This method is only useful for advanced users for really concrete purposes.

This method is equivalent to use a combination of this methods:

void IND_Render::SetRainbow2d ( IND_Type  pType,
bool  pCull,
bool  pMirrorX,
bool  pMirrorY,
IND_Filter  pFilter,
byte  pR,
byte  pG,
byte  pB,
byte  pA,
byte  pFadeR,
byte  pFadeG,
byte  pFadeB,
byte  pFadeA,
IND_BlendingType  pSo,
IND_BlendingType  pDs 
) [inline, inherited]

Parameters:

Operation:

This functions sets the color and blending attributes of the following graphical object. It should be used before any calling to the Blit methods.

Important: It is not possible to use tinting and fading at the same time, the fade will prevail upon the tinting.

Remember that you can use IND_Entity2d objects for applying color transformations to the graphical objects without having to use this advanced method directly. This method is only useful for advanced users for really concrete purposes.

This method is equivalent to use a combination of this methods:

void IND_Render::SetTransform3d ( float  pX,
float  pY,
float  pZ,
float  pAngleX,
float  pAngleY,
float  pAngleZ,
float  pScaleX,
float  pScaleY,
float  pScaleZ,
IND_Matrix pMatrix 
) [inline, inherited]

Parameters:

This function sets the 3d transformation (translation, rotation, scaling and mirroring) of the following 3d graphical objects that will be rendered by the engine. You should use this method before calling to any of the Bliting methods.

Remember that you can use IND_Entity3d object for applying 3d transformations to the graphical objects without having to use this advanced method directly. This method is only useful for advanced users for really concrete purposes.

This method is equivalent to use a combination of this methods:

void IND_Render::SetRainbow3d ( bool  pCull,
bool  pFlipNormals,
IND_Filter  pFilter,
byte  pR,
byte  pG,
byte  pB,
byte  pA,
byte  pFadeR,
byte  pFadeG,
byte  pFadeB,
byte  pFadeA,
IND_BlendingType  pSo,
IND_BlendingType  pDs 
) [inline, inherited]

Parameters:

Operation:

This functions sets the color and blending attributes of the following graphical object. It should be used before any calling to the Blit methods.

Important: It is not possible to use tinting and fading at the same time, the fade will prevail upon the tinting.

Remember that you can use IND_Entity2d objects for applying color transformations to the graphical objects without having to use this advanced method directly. This method is only useful for advanced users for really concrete purposes.

This method is equivalent to use a combination of this methods:

void IND_Render::LookAt ( float  pEyeX,
float  pEyeY,
float  pEyeZ,
float  pLookAtX,
float  pLookAtY,
float  pLookAtZ,
float  pUpX,
float  pUpY,
float  pUpZ 
) [inline, inherited]

Parameters:

Operation:

This function sets a perspective matrix trought the definition of a position and two vectors (lookat and up).

This method is equivalent to use a combination of methods of the class SetCamera3d().

void IND_Render::PerspectiveFov ( float  pFov,
float  pAspect,
float  pNearClippingPlane,
float  pFarClippingPlane 
) [inline, inherited]

Parameters:

Operation:

This function sets a fov projection matrix.

This method is equivalent to use a combination of methods of the class SetCamera3d().

void IND_Render::PerspectiveOrtho ( float  pWidth,
float  pHeight,
float  pNearClippingPlane,
float  pFarClippingPlane 
) [inline, inherited]

Parameters:

Operation:

This function sets a orthographic projection matrix.

This method is equivalent to use a combination of methods of the class SetCamera3d().


Generated on Fri Jan 2 17:16:46 2009 for IndieLib by  doxygen 1.5.4