VVISF & VVGL
VVGL- Geometry

These are some basic structs used to describe geometry in VVGL and VVISF. More...

Classes

struct  VVGL::Point
 Basic struct for 2D point. More...
 
struct  VVGL::Size
 Basic struct for 2D size. More...
 
struct  VVGL::Rect
 Basic struct for a rectangle using VVGL::Point and VVGL::Size. More...
 
struct  VVGL::VT
 Abstract base struct for vertex types (VT == "vertex type") More...
 
struct  VVGL::VT_XY
 This vertex type describes a two-dimensional point. Derives from VT. Concrete subclasses of Vertex use one or more of these to store their data. More...
 
struct  VVGL::VT_XYZ
 This vertex type describes a three-dimensional point. Derives from VT. Concrete subclasses of Vertex use one or more of these to store their data. More...
 
struct  VVGL::VT_ST
 This vertex type describes a two-dimensional texture location. Derives from VT. Concrete subclasses of Vertex use one or more of these to store their data. More...
 
struct  VVGL::VT_RGBA
 This vertex type describes RGBA color data. Derives from VT. Concrete subclasses of Vertex use one or more of these to store their data. More...
 
struct  VVGL::Vertex
 Abstract base struct for a vertex that has one or kinds of data stored in one or more vertex types. More...
 
struct  VVGL::VertXY
 Describes a vertex that only contains x/y geometry data. Derived from Vertex. More...
 
struct  VVGL::VertXYST
 Describes a vertex that contains x/y geometry data and s/t texture coordinate data. Derived from Vertex. More...
 
struct  VVGL::VertXYRGBA
 Describes a vertex that contains x/y geometry data and RGBA color data. Derived from Vertex. More...
 
struct  VVGL::VertXYSTRGBA
 Describes a vertex that contains x/y geometry data and s/t texture coordinate data and RGBA color data. Derived from Vertex. More...
 
struct  VVGL::VertXYZ
 Describes a vertex that contains x/y/z geometry data. Derived from Vertex. More...
 
struct  VVGL::VertXYZST
 Describes a vertex that contains x/y/z geometry data and s/t texture coordinate data. Derived from Vertex. More...
 
struct  VVGL::VertXYZRGBA
 Describes a vertex that contains x/y/z geometry data and RGBA color data. Derived from Vertex. More...
 
struct  VVGL::VertXYZSTRGBA
 Describes a vertex that contains x/y/z geometry data and s/t texture coordinate data and RGBA color data. Derived from Vertex. More...
 
struct  VVGL::VertRGBA
 Describes a vertex that contains RGBA color data. Derived from Vertex. More...
 
struct  VVGL::Quad< QuadType >
 This struct defines a quad- it's a simple template which is expected to be passed one of the structs derived from Vertex as the template type (this template type defines what kind of data the quad will contain). The instance methods make populating the quad with geometry/texture/color data easy, and the stride and offset methods simplify uploading the struct's memory directly to GL. More...
 

Enumerations

enum  VVGL::SizingMode { VVGL::SizingMode_Fit, VVGL::SizingMode_Fill, VVGL::SizingMode_Stretch, VVGL::SizingMode_Copy }
 

Functions

Rect VVGL::ResizeRect (const Rect &fitThisRect, const Rect &inThisRect, const SizingMode &sizingMode)
 Proportional resizing of Rects This method resizes one rect to fit in another using the provided sizing mode. Useful for calculating sizes while preserving aspect ratios.
 

Detailed Description

These are some basic structs used to describe geometry in VVGL and VVISF.

VVGL does not aim to provide significant GL math or modelling facilities- there are other, and much better, solutions for that sort of thing out there which can be used in conjunction with VVGL. These basic structs exist because there is a need within this lib for some basic geometric primitives to do things like describe bounding rectangles and two-dimensional points/sizes for texture layout, and some basic quad rendering.

Additionally, VVGL has a couple structs that can be used to populate OpenGL buffers with geometry/texture/color data.

Enumeration Type Documentation

◆ SizingMode

sizing modes used for the 'ResizeRect' function

Enumerator
SizingMode_Fit 

the content is made as large as possible, proportionally, without cutting itself off or going outside the bounds of the desired area

SizingMode_Fill 

the content is made as large as possible, proportionally, to fill the desired area- some of the content may get cut off

SizingMode_Stretch 

the content is scaled to fit perfectly within the desired area- some stretching or squashing may occur, this isn't necessarily proportional

SizingMode_Copy 

the content is copied directly to the desired area- it is not made any larger or smaller