Home | All Classes | Grouped Classes | Index | Search

# CL_Surface::draw

Stateful draw surface on graphic context. Stateless draw surface on graphic context.

    	void draw(
    		float x = 0, float y = 0, CL_GraphicContext* context = 0);

    	void draw(
    		const CL_Rect& dest, CL_GraphicContext* context = 0);

    	void draw(
    		const CL_Rect& src, const CL_Rect& dest, CL_GraphicContext* context = 0);

    	void draw(
    		const CL_Surface_DrawParams1& params1, CL_GraphicContext* context = 0);

    	void draw(
    		const CL_Surface_DrawParams2& params2, CL_GraphicContext* context = 0);

Parameters:

x, y
  Anchor position of where to render surface. Actual rendering position depends on the anchor and the alignment mode.
context
  Graphic context on which to render upon. If null, will use CL_Display's current graphic context.
dest
  Rectangle to draw surface in.
src
  Rectangle specifying the sub section of a surface to render.
srcX, srcY, srcWidth, srcHeight
  Source rectangle for the surface.
srcX[4], srcY[4]
  Four vertex points used as the source rectangle for the render.
destX, destY
  Destination origin point for render.
destZ
  Depth value for zbuffer when rendering.
red[4], green[4], blue[4], alpha[4]
  Color for each corner of rectangle.
red, green, blue, alpha
  Color for entire rectangle.
blend_src
  Source blend function.
blend_dest
  Destination blend function.
scale_x, scale_y
  Scale values for render.
translate_origin
  Alignment origin.
translate_x, translate_y
  Translate relative to alignment origin.
rotate_angle
  Angle in degrees to rotate the surface in the X-Y direction.
rotate_pitch
  Angle in degrees to rotate the surface in the Y-Z direction.
rotate_yaw
  Angle in degrees to rotate the surface in the X-Z direction.
rotate_origin
  Rotation origin.
rotate_x, rotate_y
  Rotation hotspot relative to rotation origin.
sub_pixel_accuracy
  If true, floating point data isn't truncated and the texture matrix isn't offset (applicable to GL only)
context
  Graphic context on which to render upon. If null, will use CL_Display's current graphic context.

Detailed description:

These drawing functions will draw the surface on the graphic context, using the attributes on CL_Surface. Attributes such as scaling, translate hotspot, rotate hotspot, blend functions, color will be used when drawing the surface.

Stateless drawing functions will not use any of the state attributes on CL_Surface. The state attributes on CL_Surface are parameters such as scaling, hotspots, blending functions and color. Instead the drawing functions take all the parameters it need to perform the render.

Subpixel versions don't perform texture texel shifting or truncate input to integers.

See also:

CL_Display | CL_GraphicContext | CL_Rect | CL_Surface | CL_Surface_DrawParams1 | CL_Surface_DrawParams2

Questions or comments, write to the ClanLib mailing list.