iGraphics3D Struct Reference
[3D]
This is the standard 3D graphics interface.
More...
#include <ivideo/graph3d.h>
Inheritance diagram for iGraphics3D:

Public Member Functions | |
virtual bool | Open ()=0 |
Open the 3D graphics display. | |
virtual void | Close ()=0 |
Close the 3D graphics display. | |
virtual iGraphics2D * | GetDriver2D ()=0 |
Retrieve the associated canvas. | |
virtual iTextureManager * | GetTextureManager ()=0 |
Retrieve the texture manager. | |
virtual void | SetDimensions (int width, int height)=0 |
Change the dimensions of the display. | |
virtual int | GetWidth () const =0 |
Get drawing buffer width. | |
virtual int | GetHeight () const =0 |
Get drawing buffer height. | |
virtual const csGraphics3DCaps * | GetCaps () const =0 |
Get the current driver's capabilities. | |
virtual void | SetPerspectiveCenter (int x, int y)=0 |
Set center of projection for perspective projection. | |
virtual void | GetPerspectiveCenter (int &x, int &y) const =0 |
Get perspective center. | |
virtual void | SetPerspectiveAspect (float aspect)=0 |
Set aspect ratio for perspective projection. | |
virtual float | GetPerspectiveAspect () const =0 |
Get aspect ratio. | |
virtual void | SetObjectToCamera (csReversibleTransform *o2c)=0 |
Set object to camera transformation (currently only used by DrawTriangleMesh and DrawPolygonMesh). | |
virtual const csReversibleTransform & | GetObjectToCamera ()=0 |
Get object to camera transformation. | |
virtual void | SetRenderTarget (iTextureHandle *handle, bool persistent=false)=0 |
Set the target of rendering. | |
virtual iTextureHandle * | GetRenderTarget () const =0 |
Get the current render target (0 for screen). | |
virtual bool | BeginDraw (int DrawFlags)=0 |
Start a new frame (see CSDRAW_XXX bit flags). | |
virtual void | FinishDraw ()=0 |
End the frame and do a page swap. | |
virtual void | Print (csRect const *area)=0 |
Print the image in backbuffer. | |
virtual void | DrawPixmap (iTextureHandle *hTex, int sx, int sy, int sw, int sh, int tx, int ty, int tw, int th, uint8 Alpha=0)=0 |
Draw a pixmap using a rectangle from given texture. | |
virtual void | DrawLine (const csVector3 &v1, const csVector3 &v2, float fov, int color)=0 |
Draw a line in camera space. | |
virtual void | SetClipper (iClipper2D *clipper, int cliptype)=0 |
Set optional clipper to use. | |
virtual iClipper2D * | GetClipper ()=0 |
Get clipper that was used. | |
virtual int | GetClipType () const =0 |
Return type of clipper. | |
virtual void | SetNearPlane (const csPlane3 &pl)=0 |
Set near clip plane. | |
virtual void | ResetNearPlane ()=0 |
Reset near clip plane (i.e. | |
virtual const csPlane3 & | GetNearPlane () const =0 |
Get near clip plane. | |
virtual bool | HasNearPlane () const =0 |
Return true if we have a near plane. | |
virtual bool | SetRenderState (G3D_RENDERSTATEOPTION op, long val)=0 |
Set a renderstate value. | |
virtual long | GetRenderState (G3D_RENDERSTATEOPTION op) const =0 |
Get a renderstate value. | |
virtual bool | SetOption (const char *, const char *)=0 |
Set a renderer specific option. | |
virtual bool | ActivateBuffers (csRenderBufferHolder *holder, csRenderBufferName mapping[CS_VATTRIB_SPECIFIC_LAST+1])=0 |
Activate the buffers in the default buffer holder. | |
virtual bool | ActivateBuffers (csVertexAttrib *attribs, iRenderBuffer **buffers, unsigned int count)=0 |
Activate all given buffers. | |
virtual void | DeactivateBuffers (csVertexAttrib *attribs, unsigned int count)=0 |
Deactivate all given buffers. | |
virtual void | SetTextureState (int *units, iTextureHandle **textures, int count)=0 |
Activate or deactivate all given textures depending on the value of 'textures' for that unit (i.e. | |
virtual void | DrawMesh (const csCoreRenderMesh *mymesh, const csRenderMeshModes &modes, const csArray< csArray< csShaderVariable * > > &stacks)=0 |
Drawroutine. Only way to draw stuff. | |
virtual void | SetWriteMask (bool red, bool green, bool blue, bool alpha)=0 |
Set the masking of color and/or alpha values to framebuffer. | |
virtual void | GetWriteMask (bool &red, bool &green, bool &blue, bool &alpha) const =0 |
Get the masking of color and/or alpha values to framebuffer. | |
virtual void | SetZMode (csZBufMode mode)=0 |
Set the z buffer write/test mode. | |
virtual void | EnableZOffset ()=0 |
Enables offsetting of Z values. | |
virtual void | DisableZOffset ()=0 |
Disables offsetting of Z values. | |
virtual void | SetShadowState (int state)=0 |
Controls shadow drawing. | |
virtual float | GetZBuffValue (int x, int y)=0 |
Get Z-buffer value at given X,Y position. | |
virtual void | OpenPortal (size_t numVertices, const csVector2 *vertices, const csPlane3 &normal, bool floating)=0 |
Enter a new portal. | |
virtual void | ClosePortal (bool zfill_portal)=0 |
Close a portal previously opened with OpenPortal(). | |
virtual iHalo * | CreateHalo (float iR, float iG, float iB, unsigned char *iAlpha, int iWidth, int iHeight)=0 |
Create a halo of the specified color and return a handle. | |
virtual void | RemoveFromCache (iRendererLightmap *rlm)=0 |
Remove some polygon from the cache. | |
virtual bool | IsLightmapOK (int lmw, int lmh, int lightCellSize)=0 |
Check if renderer can handle a lightmap. | |
virtual void | DrawSimpleMesh (const csSimpleRenderMesh &mesh, uint flags=0)=0 |
Draw a csSimpleRenderMesh on the screen. | |
virtual csZBufMode | GetZMode ()=0 |
Get the z buffer write/test mode. |
Detailed Description
This is the standard 3D graphics interface.All 3D graphics rasterizer servers for Crystal Space should implement this interface, as well as the iGraphics2D interface. The standard implementation is csGraphics3DSoftware.
Main creators of instances implementing this interface:
- OpenGL Renderer plugin (crystalspace.graphics3d.opengl)
- Software Renderer plugin (crystalspace.graphics3d.software)
- Null 3D Renderer plugin (crystalspace.graphics3d.null)
- CS_QUERY_REGISTRY()
Definition at line 557 of file graph3d.h.
Member Function Documentation
|
Activate all given buffers.
|
|
Activate the buffers in the default buffer holder.
|
|
Start a new frame (see CSDRAW_XXX bit flags).
|
|
Close the 3D graphics display.
|
|
Close a portal previously opened with OpenPortal(). If 'zfill_portal' then the portal area will be zfilled. |
|
Create a halo of the specified color and return a handle.
|
|
Deactivate all given buffers. If attribs is 0, all buffers are deactivated; |
|
Disables offsetting of Z values.
|
|
Draw a line in camera space. Warning! This is a 2D operation and must be called while in BeginDraw(CSDRAW_2DGRAPHICS)! |
|
Drawroutine. Only way to draw stuff.
|
|
Draw a pixmap using a rectangle from given texture. The sx,sy(sw,sh) rectangle defines the screen rectangle within which the drawing is performed (clipping rectangle is also taken into account). The tx,ty(tw,th) rectangle defines a subrectangle from texture which should be painted. If the subrectangle exceeds the actual texture size, texture coordinates are wrapped around (e.g. the texture is tiled). The Alpha parameter defines the transparency of the drawing operation, 0 means opaque, 255 means fully transparent. WARNING: Tiling works only with textures that have power-of-two sizes! That is, both width and height should be a power-of-two, although not neccessarily equal. |
|
Draw a csSimpleRenderMesh on the screen. Simple render meshes are intended for cases where setting up a render mesh and juggling with render buffers would be too much effort - e.g. when you want to draw a single polygon on the screen. DrawSimpleMesh () hides the complexity of csRenderMesh, it cares about setting up render buffers, activating the texture etc. Note that you can still provide shaders and shader variables, but those are optional.
|
|
Enables offsetting of Z values.
|
|
End the frame and do a page swap.
|
|
Get the current driver's capabilities. Each driver implements their own function. |
|
Get clipper that was used.
|
|
Return type of clipper.
|
|
Retrieve the associated canvas.
|
|
Get drawing buffer height.
|
|
Get near clip plane.
|
|
Get object to camera transformation.
|
|
Get aspect ratio.
|
|
Get perspective center.
|
|
Get a renderstate value.
|
|
Get the current render target (0 for screen).
|
|
Retrieve the texture manager.
|
|
Get drawing buffer width.
|
|
Get the masking of color and/or alpha values to framebuffer.
|
|
Get Z-buffer value at given X,Y position.
|
|
Get the z buffer write/test mode.
|
|
Return true if we have a near plane.
|
|
Check if renderer can handle a lightmap. Returns true if it can, false if not. |
|
Open the 3D graphics display.
|
|
Enter a new portal. If 'floating' is true then this routine will restrict all further drawing to the given 2D area and it will also respect the current contents of the Z-buffer so that geometry will only render where the Z-buffer allows it (even if zfill or znone is used). Remember to close a portal later using ClosePortal(). Basically this represents a stacked layer of portals. Each subsequent portal must be fully contained in the previous ones. |
|
Print the image in backbuffer. The area parameter is only a hint to the renderer. Changes outside the rectangle may or may not be printed as well. |
|
Remove some polygon from the cache. You have to call this function before deleting a polygon (csPolygon3D destructor will do that). |
|
Reset near clip plane (i.e. disable it). |
|
Set optional clipper to use. If clipper == null then there is no clipper. Currently only used by DrawTriangleMesh. |
|
Change the dimensions of the display.
|
|
Set near clip plane. Currently only used by DrawTriangleMesh. |
|
Set object to camera transformation (currently only used by DrawTriangleMesh and DrawPolygonMesh).
|
|
Set a renderer specific option. Returns false if renderer doesn't support that option. |
|
Set aspect ratio for perspective projection.
|
|
Set center of projection for perspective projection. Center is set in screen space coordinates. |
|
Set a renderstate value.
|
|
Set the target of rendering. If this is 0 then the target will be the main screen. Otherwise it is a texture. After calling g3d->FinishDraw() the target will automatically be reset to 0 (main screen). Note that on some implementions rendering on a texture will overwrite the screen. So you should only do this BEFORE you start rendering your frame. If 'persistent' is true then the current contents of the texture will be copied on screen before drawing occurs (in the first call to BeginDraw). Otherwise it is assumed that you fully render the texture. |
|
Controls shadow drawing.
|
|
Activate or deactivate all given textures depending on the value of 'textures' for that unit (i.e. deactivate if 0). |
|
Set the masking of color and/or alpha values to framebuffer.
|
|
Set the z buffer write/test mode.
|
The documentation for this struct was generated from the following file:
- ivideo/graph3d.h
Generated for Crystal Space by doxygen 1.3.9.1