Classes | Enumerations | Functions

# C:/programming/devkitPro/myprogs/LibGL2D/distributable/libnds/include/gl2d.h File Reference

A very small and simple DS rendering lib using the 3d core to render 2D stuff. More...

`#include <nds/arm9/videoGL.h>`

Go to the source code of this file.

## Classes
struct | glImage
| Struct for our GL-Based Images This is our struct to hold our image attributes. You don't need to worry about this if you use the texture packer. More...
## Enumerations
enum | GL_FLIP_MODE { GL_FLIP_NONE = (1 << 0), GL_FLIP_V = (1 << 1), GL_FLIP_H = (1 << 2) }
| Enums selecting flipping mode. More...
## Functions
void | glScreen2D (void)
| Initializes GL in 2D mode.
void | glBegin2D (void)
| Sets up OpenGL for 2d rendering. Call this before drawing any of GL2D's drawing or sprite functions.
void | glEnd2D (void)
| Issue this after drawing 2d so that we don't mess the matrix stack. The compliment of glBegin2D().
void | glPutPixel (int x, int y, int color)
| Draws a Pixel.
void | glLine (int x1, int y1, int x2, int y2, int color)
| Draws a Line.
void | glBox (int x1, int y1, int x2, int y2, int color)
| Draws a Box.
void | glBoxFilled (int x1, int y1, int x2, int y2, int color)
| Draws a Filled Box.
void | glBoxFilledGradient (int x1, int y1, int x2, int y2, int color1, int color2, int color3, int color4)
| Draws a Filled Box in gradient colors.
void | glTriangle (int x1, int y1, int x2, int y2, int x3, int y3, int color)
| Draws a Triangle.
void | glTriangleFilled (int x1, int y1, int x2, int y2, int x3, int y3, int color)
| Draws a Filled Triangle.
void | glTriangleFilledGradient (int x1, int y1, int x2, int y2, int x3, int y3, int color1, int color2, int color3)
| Draws a Triangle in gradient colors.
void | glSprite (int x, int y, int flipmode, const glImage *spr)
| Draws a Sprite.
void | glSpriteScale (int x, int y, s32 scale, int flipmode, const glImage *spr)
| Draws a Scaled Sprite.
void | glSpriteScaleXY (int x, int y, s32 scaleX, s32 scaleY, int flipmode, const glImage *spr)
| Draws an Axis Exclusive Scaled Sprite.
void | glSpriteRotate (int x, int y, s32 angle, int flipmode, const glImage *spr)
| Draws a Center Rotated Sprite.
void | glSpriteRotateScale (int x, int y, s32 angle, s32 scale, int flipmode, const glImage *spr)
| Draws a Center Rotated Scaled Sprite.
void | glSpriteRotateScaleXY (int x, int y, s32 angle, s32 scaleX, s32 scaleY, int flipmode, const glImage *spr)
| Draws a Center Rotated Axis-Exclusive Scaled Sprite.
void | glSpriteStretchHorizontal (int x, int y, int length_x, const glImage *spr)
| Draws a Horizontaly Stretched Sprite (Clean Stretching) Useful for "Laser Effects".
void | glSpriteOnQuad (int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int flipmode, const glImage *spr)
| Draws a Horizontaly Stretched Sprite (Clean Stretching) Useful for "Shrearing Effects".
int | glLoadSpriteSet (glImage *sprite, const unsigned int numframes, const unsigned int *texcoords, GL_TEXTURE_TYPE_ENUM type, int sizeX, int sizeY, int param, int pallette_width, const u16 *palette, const uint8 *texture)
| Initializes our spriteset with Texture Packer generated UV coordinates Very safe and easy to use..
int | glLoadTileSet (glImage *sprite, int tile_wid, int tile_hei, int bmp_wid, int bmp_hei, GL_TEXTURE_TYPE_ENUM type, int sizeX, int sizeY, int param, int pallette_width, const u16 *palette, const uint8 *texture)
| Initializes our Tileset (like glInitSpriteset()) but without the use of Texture Packer auto-generated files. Can only be used when tiles in a tilset are of the same dimensions.

## Detailed Description

A very small and simple DS rendering lib using the 3d core to render 2D stuff.

## Enumeration Type Documentation

enum GL_FLIP_MODE

Enums selecting flipping mode.

These enums are bits for flipping the sprites.
You can "|" (or) GL_FLIP_V and GL_FLIP_H to flip both ways.

- Related functions:
  1. glSprite()
  2. glSpriteScale()
  3. glSpriteRotate()
  4. glSpriteScaleXY(()
  5. glSpriteRotateScale()
  6. glSpriteRotateScaleXY()
  7. glSpriteOnQuad()

Enumerator:

  GL_FLIP_NONE | No flipping
  GL_FLIP_V | Sprite is rendered vertically flipped
  GL_FLIP_H | Sprite is rendered horizontally flipped

## Function Documentation

void glBox | ( | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | color
| ) |  |

Draws a Box.

Parameters:

  x1,y1 | Top-Left coordinate of the box.
  x2,y2 | Bottom-Right coordinate of the box.
  color | RGB15/ARGB16 color.

void glBoxFilled | ( | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | color
| ) |  |

Draws a Filled Box.

Parameters:

  x1,y1 | Top-Left coordinate of the box.
  x2,y2 | Bottom-Right coordinate of the box.
  color | RGB15/ARGB16 color.

void glBoxFilledGradient | ( | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | color1,
|  | int | color2,
|  | int | color3,
|  | int | color4
| ) |  |

Draws a Filled Box in gradient colors.

Parameters:

  x1,y1 | Top-Left coordinate of the box.
  x2,y2 | Bottom-Right coordinate of the box.
  color1 | RGB15/ARGB16 color of the Top-Left corner.
  color2 | RGB15/ARGB16 color of the Bottom-Left corner.
  color3 | RGB15/ARGB16 color of the Bottom-Right corner.
  color4 | RGB15/ARGB16 color of the Top-Right corner.

void glLine | ( | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | color
| ) |  |

Draws a Line.

Parameters:

  x1,y1 | Top-Left coordinate of the line.
  x2,y2 | Bottom-Right coordinate of the line.
  color | RGB15/ARGB16 color.

int glLoadSpriteSet | ( | glImage * | sprite,
|  | const unsigned int | numframes,
|  | const unsigned int * | texcoords,
|  | GL_TEXTURE_TYPE_ENUM | type,
|  | int | sizeX,
|  | int | sizeY,
|  | int | param,
|  | int | pallette_width,
|  | const u16 * | palette,
|  | const uint8 * | texture
| ) |  |

Initializes our spriteset with Texture Packer generated UV coordinates
Very safe and easy to use..

Parameters:

  *sprite | Pointer to an array of glImage.
  numframes | number of frames in a spriteset (auto-generated by Texture Packer).
  *texcoords | Texture Packer auto-generated array of UV coords.
  type | The format of the texture ( see glTexImage2d() ).
  sizeX | The horizontal size of the texture; valid sizes are enumerated in GL_TEXTURE_TYPE_ENUM ( see glTexImage2d() ).
  sizeY | The vertical size of the texture; valid sizes are enumerated in GL_TEXTURE_TYPE_ENUM ( see glTexImage2d() ).
  param | parameters for the texture ( see glTexImage2d() ).
  pallette_width | Length of the palette. Valid values are 4, 16, 32, 256 (if 0, then palette is removed from currently bound texture).
  *palette | Pointer to the palette data to load (if NULL, then palette is removed from currently bound texture).
  *texture | Pointer to the texture data to load.

int glLoadTileSet | ( | glImage * | sprite,
|  | int | tile_wid,
|  | int | tile_hei,
|  | int | bmp_wid,
|  | int | bmp_hei,
|  | GL_TEXTURE_TYPE_ENUM | type,
|  | int | sizeX,
|  | int | sizeY,
|  | int | param,
|  | int | pallette_width,
|  | const u16 * | palette,
|  | const uint8 * | texture
| ) |  |

Initializes our Tileset (like glInitSpriteset()) but without the use of Texture Packer auto-generated files.
Can only be used when tiles in a tilset are of the same dimensions.

Parameters:

  *sprite | Pointer to an array of glImage.
  tile_wid | Width of each tile in the texture.
  tile_hei | Height of each tile in the texture.
  bmp_wid | Width of of the texture or tileset.
  bmp_hei | height of of the texture or tileset.
  type | The format of the texture ( see glTexImage2d() ).
  sizeX | The horizontal size of the texture; valid sizes are enumerated in GL_TEXTURE_TYPE_ENUM ( see glTexImage2d() ).
  sizeY | The vertical size of the texture; valid sizes are enumerated in GL_TEXTURE_TYPE_ENUM ( see glTexImage2d() ).
  param | parameters for the texture ( see glTexImage2d() ).
  pallette_width | Length of the palette. Valid values are 4, 16, 32, 256 (if 0, then palette is removed from currently bound texture).
  *palette | Pointer to the palette data to load (if NULL, then palette is removed from currently bound texture).
  *texture | Pointer to the texture data to load.

void glPutPixel | ( | int | x,
|  | int | y,
|  | int | color
| ) |  |

Draws a Pixel.

Parameters:

  x | X position of the pixel.
  y | Y position of the pixel.
  color | RGB15/ARGB16 color.

void glSprite | ( | int | x,
|  | int | y,
|  | int | flipmode,
|  | const glImage * | spr
| ) |  |

Draws a Sprite.

Parameters:

  x | X position of the sprite.
  y | Y position of the sprite.
  flipmode | mode for flipping (see GL_FLIP_MODE enum).
  *spr | pointer to a glImage.

void glSpriteOnQuad | ( | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | x3,
|  | int | y3,
|  | int | x4,
|  | int | y4,
|  | int | flipmode,
|  | const glImage * | spr
| ) |  |

Draws a Horizontaly Stretched Sprite (Clean Stretching)
Useful for "Shrearing Effects".

Parameters:

  x1,y1 | First corner of the sprite.
  x2,y2 | Second corner of the sprite.
  x3,y3 | Third corner of the sprite.
  x4,y4 | Fourth corner of the sprite.
  flipmode | mode for flipping (see GL_FLIP_MODE enum).
  *spr | pointer to a glImage.

void glSpriteRotate | ( | int | x,
|  | int | y,
|  | s32 | angle,
|  | int | flipmode,
|  | const glImage * | spr
| ) |  |

Draws a Center Rotated Sprite.

Parameters:

  x | X position of the sprite center.
  y | Y position of the sprite center.
  angle | Binary Radian Angle(-32768 to 32767) to rotate the sprite.
  flipmode | mode for flipping (see GL_FLIP_MODE enum).
  *spr | pointer to a glImage.

void glSpriteRotateScale | ( | int | x,
|  | int | y,
|  | s32 | angle,
|  | s32 | scale,
|  | int | flipmode,
|  | const glImage * | spr
| ) |  |

Draws a Center Rotated Scaled Sprite.

Parameters:

  x | X position of the sprite center.
  y | Y position of the sprite center.
  angle | Binary Radian Angle(-32768 to 32767) to rotate the sprite.
  scale | 20.12 fixed-point scale value (1 << 12 is normal).
  flipmode | mode for flipping (see GL_FLIP_MODE enum).
  *spr | pointer to a glImage.

void glSpriteRotateScaleXY | ( | int | x,
|  | int | y,
|  | s32 | angle,
|  | s32 | scaleX,
|  | s32 | scaleY,
|  | int | flipmode,
|  | const glImage * | spr
| ) |  |

Draws a Center Rotated Axis-Exclusive Scaled Sprite.

Parameters:

  x | X position of the sprite center.
  y | Y position of the sprite center.
  angle | Binary Radian Angle(-32768 to 32767) to rotate the sprite.
  scaleX | 20.12 fixed-point X-Axis scale value (1 << 12 is normal).
  scaleY | 20.12 fixed-point Y-Axis scale value (1 << 12 is normal).
  flipmode | mode for flipping (see GL_FLIP_MODE enum).
  *spr | pointer to a glImage.

void glSpriteScale | ( | int | x,
|  | int | y,
|  | s32 | scale,
|  | int | flipmode,
|  | const glImage * | spr
| ) |  |

Draws a Scaled Sprite.

Parameters:

  x | X position of the sprite.
  y | Y position of the sprite.
  scale | 20.12 fixed-point scale value (1 << 12 is normal).
  flipmode | mode for flipping (see GL_FLIP_MODE enum).
  *spr | pointer to a glImage.

void glSpriteScaleXY | ( | int | x,
|  | int | y,
|  | s32 | scaleX,
|  | s32 | scaleY,
|  | int | flipmode,
|  | const glImage * | spr
| ) |  |

Draws an Axis Exclusive Scaled Sprite.

Parameters:

  x | X position of the sprite.
  y | Y position of the sprite.
  scaleX | 20.12 fixed-point X-Axis scale value (1 << 12 is normal).
  scaleY | 20.12 fixed-point Y-Axis scale value (1 << 12 is normal).
  flipmode | mode for flipping (see GL_FLIP_MODE enum).
  *spr | pointer to a glImage.

void glSpriteStretchHorizontal | ( | int | x,
|  | int | y,
|  | int | length_x,
|  | const glImage * | spr
| ) |  |

Draws a Horizontaly Stretched Sprite (Clean Stretching)
Useful for "Laser Effects".

Parameters:

  x | X position of the sprite center.
  y | Y position of the sprite center.
  length_x | The length(in pixels) to stretch the sprite.
  *spr | pointer to a glImage.

void glTriangle | ( | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | x3,
|  | int | y3,
|  | int | color
| ) |  |

Draws a Triangle.

Parameters:

  x1,y1 | Vertex 1 of the triangle.
  x2,y2 | Vertex 2 of the triangle.
  x3,y3 | Vertex 3 of the triangle.
  color | RGB15/ARGB16 color of the triangle.

void glTriangleFilled | ( | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | x3,
|  | int | y3,
|  | int | color
| ) |  |

Draws a Filled Triangle.

Parameters:

  x1,y1 | Vertex 1 of the triangle.
  x2,y2 | Vertex 2 of the triangle.
  x3,y3 | Vertex 3 of the triangle.
  color | RGB15/ARGB16 color of the triangle.

void glTriangleFilledGradient | ( | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | x3,
|  | int | y3,
|  | int | color1,
|  | int | color2,
|  | int | color3
| ) |  |

Draws a Triangle in gradient colors.

Parameters:

  x1,y1 | Vertex 1 of the triangle.
  x2,y2 | Vertex 2 of the triangle.
  x3,y3 | Vertex 3 of the triangle.
  color1 | RGB15/ARGB16 color of the vertex 1.
  color2 | RGB15/ARGB16 color of the vertex 2.
  color3 | RGB15/ARGB16 color of the vertex 3.