Support Forum       G3D Web Page     
All APIs by Level


APIs at the top of this page are the highest-level, providing the most functionality but also requiring the most dependencies.

Each section builds on the next lower one, with the most basic standalone routines at the bottom.

You can use any API level independently. For example, interaction prototyping might target the Application Framework for the support of full game engine, while shader tuning might be best done directly on the Graphics API Abstraction layer.

Bold items are the ones used most frequently.

Application Framework

High-level building blocks for creating applications.

Application

GApp, GApp::Settings,

AR/VR

EmulatedGazeTracker, EmulatedXR, VRApp

3D UI

ControlPointEditor,
FirstPersonManipulator, Manipulator, PhysicsFrameSplineEditor, ThirdPersonManipulator, UprightSplineManipulator, Widget, WidgetManager, GameController

Scene Graph

Camera, Entity, Entity::Track, Light, MarkerEntity, Scene, SceneVisualizationSettings, Skybox, SoundEntity, VisibleEntity, ParticleSystem, XRWidget,

3D Models

ArticulatedModel (see also OBJ MTL and ArticulatedModel::Specification), BSPMap, debugDraw, debugDrawLabel, GFont, HeightfieldModel, Shape (ArrowShape, AxesShape,BoxShape, CylinderShape, CapsuleShape, MeshShape, PlaneShape, RayShape, SphereShape, TriangleShape), FontModel, MD2Model, MD3Model, Model, ParticleSystemModel, PointShape, PointModel, VoxelModel

Visual Effects

AmbientOcclusion, AmbientOcclusionSettings, BilateralFilter, DepthOfField, DepthOfFieldSettings, Film, FilmSettings, GaussianBlur, MotionBlur, MotionBlurSettings, TemporalFilter

2D User InterfaceArticulatedModelSpecificationEditorDialog CallbackWidget, CameraControlWindow,
ControlPointEditor,
DeveloperWindow, EventCoordinateMapper, FileDialog, FullScreenWidget, GConsole, GuiContainer, GuiControl, GuiControl::Callback,
GuiCheckBox, GuiButton, GuiDropDownList, GuiFunctionBox, GuiLabel, GuiMenu, GuiNumberBox, GuiPane, GuiRadioButton, GuiTabPane, GuiTheme, GuiScrollPane, GuiSlider, GuiText, GuiTextBox, GuiMultiLineTextBox, GuiTextureBox, GuiWidgetDestructor, GuiWindow, Icon, IconSet, QRcode_encodeString, screenPrintf, SceneEditorWindow, TextureBrowserWindow, VideoRecordDialog


Renderer

Ray Tracing

DirectionHistogram, EmbreeTriTree (Windows only), NativeTriTree, OptiXTriTree (Windows only), PathTracer, Tri, TriTree, TriTreeBase

Materials and Scattering

BumpMap, Material,
Surfel, Surfel::Impulse, UniversalSurfel, UniversalMaterial,
UniversalBSDF

Immediate ModeDefaultRenderer, Draw, FogVolumeSurface, GBuffer, LightingEnvironment, PointSurface, ParticleSurface, Renderer, ScreenCapture, Surface2D, Surface, SkyboxSurface, TextSurface, VoxelSurface, ShadowMap, SlowMesh, UniversalSurface, UniversalSurface::CPUGeom, UniversalSurface::GPUGeom, VisualizeCameraSurface, VisualizeLightSurface


Graphics API Abstraction

An easy-to-use wrapper for graphics APIs and a platform-independent windowing system.

GLSL RoutinesSimple math routines, Polygon clipping, HLSL compatibility, Bicubic filtering, Screen-space ray tracing, Reverse reprojection, Depth buffer, Depth peeling, Octahedral projection, Color gradients, Noise and Hash functions
API Abstraction

Args, BufferTexture, CPUVertexArray, DepthEncoding, DXCaps, Framebuffer, GLCaps, GLPixelTransferBuffer, Milestone, Profiler, BEGIN_PROFILER_EVENT, END_PROFILER_EVENT, RenderDevice, Texture, AttributeArray, VertexBuffer, Sampler, BindlessTextureHandle, Shader, Shader preprocessor, UniformTable, LAUNCH_SHADER, LAUNCH_SHADER_PTR, G3D_MIN_OPENGL_VERSION

AR/VR

GazeTracker, MonitorXR, OpenVR, XR

Windowing

GEvent, GEventType, GKey, GLFWWindow, JoystickIndex, OSWindow, UserInput

OpenGL-Specific HelpersdebugAssertGLOk, DECLARE_GLFORMATOF, getOpenGLState, glCanBeIndex, glClipToBox, glColor, glDisableAllClipping, glDisableAllTextures, glGetCurrentContext, glGetProcAddress, glGetInteger, glGetBoolean, glGetDouble, glGetFloat, glGetMatrix, glLoadMatrix, glLoadInvMatrix, glMakeCurrent,
glMultInvMatrix, glMultMatrix, glMutliTexCoord, glNormal, glTexCoord, glToScreen, glVertex, sizeOfGlFormat, glIsNormalizedFixedPoint, glFormatOf, GLenumToString
AudioAudioChannel, AudioDevice, Sound


Math Library

Core data structures.

Geometry

AABox, AABox2D (Rect2D), Box, Box2D, Capsule, CompassDelta, CompassDirection, CollisionDetection, Cone, ConvexPolygon, ConvexPolygon2D, ConvexPolyhedron, CoordinateFrame, CFrame (CoordinateFrame), CullFace, Cylinder, FOVDirection, Frustum, float16, Intersect, Line, LineSegment, LineSegment2D, MeshAlg, MeshAlg::Geometry, MeshBuilder, Quat, Pathfinder, PathDirection, PhysicsFrame (PFrame), PhysicsFrameSpline, Plane, Point2, Point2int16, Point2uint16, Point2int32, Point2uint32, Point3, Point3int16, Point3int32, Projection, PrecomputedRay, Ray, RayGridIterator, RealTime, Rect2D, Sphere, Spline, SplineInterpolationMode, SplineExtrapolationMode, Triangle, tesselateComplexPolygon, UprightFrame, UprightSpline, Welder

Linear Algebra

Matrix, Matrix2, Matrix3, Matrix4, Matrix4float64, Matrix3x4, Matrix2x3, Vector2, Vector2int16, Vector2uint16, Vector2unorm16, Vector2int32, Vector2uint32, Vector3, Vector3uint8, Vector3int16, Vector3int32, Vector4, Vector4int8, Vector4int16 Vector4uint16

Radiometry

Biradiance, Biradiance3, Color1, Color1unorm8, Color2unorm8, Color3, Color3unorm8, Color4, Color4unorm8, Energy3, Power, Power3, Radiance, Radiance3, Radiosity, Radiosity3, Irradiance, Irradiance3, Surfel

Integer math

BIN8, BIN11, BIN16, BIN32, ceilPow2, highestBit, iAbs, iCeil, iClamp, iWrap, iFloor, iMax, iMin, int8, in16, int32, int64, isPow2, isOdd, isEven, iSign, iRound, roundStochastically, snorm8, snorm16, uint8, uint16, uint32, uint64, uint128, unorm8, unorm16, pow2

Floating point

abs, aCos, aSin, aTan, aTan2, clamp, cyclicCatumullRomSpline, float32, float64, fract, fuzzyEq, fuzzyNe, fuzzyGt, fuzzyGe, fuzzyLt, fuzzyLe, fuzzyEpsilon32, fuzzyEpsilon64, hammersleySequence2D, HaltonSequence, lerp, lerpAngle, linearSpline, log2, sign, rsq, min, max, nextMod3, Noise, Random, PrecomputedRandom, square, squareMagnitude, sinc, sumSquares, distance, toRadians, toDegrees, isNaN, isFinite, inf, nan, wrap, pi, halfPi, rsqrt, smoothstep, smootherstep, signedPow twoPi

String

alphabeticalIgnoringCaseG3DFirstLessThan, beginsWith, buildPrefixTree, endsWith, findSlash, findSlash, format, greatestCommonPrefix isSlash, isWhitespace, isDigit, isNewline, isLetter, isQuote, license, maxNotNPOS, parseCommaSeparated, vformat, wordWrap, stringCompare, stringptrCompare, stringSplit, stringJoin, toUpper, toLower, NEWLINE, String, trimWhitespace, STR

Data structures

Any, AnyTableReader, Array, categorizeByDerivedType, DepthFirstTreeBuilder, FastPointHashGrid, FastPODTable, Grid, isNull, ignoreInt, ignoreFloat, ignoreDouble, ignoreString, KDTree, notNull, PercentageAdapter, PowerOfTwoAdapter, PrefixTree, SquareAdapter, NotAdapter, OrderedTable, PARSE_ANY, Pointer, PointHashGrid, PointKDTree, lazy_ptr, Queue, Set, SmallArray, SmallTable, Table, ThreadsafeQueue, TimeQueue, ReferenceCountedObject, WeakCache

Images and Video

BufferUnmapper, BumpMapPreprocess, CPUPixelTransferBuffer, CubeFace, CubeMap, CubeMapConvention, Image, PixelTransferBuffer, ImageConvert, ImageFormat, Map2D, gaussian1D, VideoInput, VideoOutput, VideoStreamServer, VideoStreamClient, WrapMode

Debug

alwaysAssertM, debugAssert, debugAssertM, describeSystem, isValidHeapPointer, isValidPointer setConsolePrintHook, consolePrintHook, consolePrint, consolePrintf, debugPrintf, logPrintf, Log, setAssertionHook, setFailureHook

Hash Functions

Crypto, MD5Hash, superFastHash, wangHash6432Shift, HashTrait

Utilities and Constants

AlphaFilter, DoNotInitialize, MirrorQuality, PrimitiveType, RefractionHint,
ResampleFilter, enumToJavaScriptDeclaration, G3D_DECLARE_ENUM_CLASS(), G3D_DECLARE_ENUM_CLASS_METHODS(), G3D_DECLARE_ENUM_CLASS_HASHCODE(), G3D_BEGIN_ENUM_CLASS_DECLARATION(), G3D_END_ENUM_CLASS_DECLARATION()

UnitsIn the units namespace: toSeconds, nanometers, micrometers, millimeters, centimeters, meters, kilometers, inches, feet, yards, miles, radians, degrees, nanoseconds, milliseconds, seconds, minutes, hours, days, years


OS Abstraction

Core system functionality.

Files

BinaryInput, BinaryOutput, deserialize, FileNotFound, FilePath, FileSystem, pathConcat, g3dfnmatch, generateFilenameBase, Journal, ParseError, ParseOBJ, ParsePLY, ParseMTL, ParseVOX, readWholeFile, serialize, TextInput, TextOutput, Token, TextInput::WrongTokenType, writeWholeFile, XML, zipfileExists

Network

NetServer, NetSendConnection, NetConnection, NetAddress, networkSendBacklog, networkCommunicationInterval/ setNetworkCommunicationInterval serviceNetwork, WebServer, WebServer::WebSocket, (Deprecated: Discovery::Client, Discovery::Server, Discovery::Settings,
LightweightConduit, NetListener, NetworkDevice, ReliableConduit)

Time and Threads

GUniqueID, runConcurrently, Spinlock, Stopwatch, System

CPU Memory

AlignedMemoryManager,
AreaMemoryManager, BinaryFormat, binaryFormatOf, BlockPoolMemoryManager, byteSize, CRTMemoryManager,
G3DAllocator, G3DEndian, MemoryManager, System::free, System::malloc

Native UI

msgBox, prompt

Initialization

initG3D, G3DSpecification

MacrosG3D_WINDOWS(), G3D_OSX(), G3D_LINUX(), G3D_VER(), PRAGMA(), G3D_BEGIN_PACKED_CLASS(), G3D_END_PACKED_CLASS(), G3D_CHECK_PRINTF_METHOD_ARGS(), G3D_CHECK_VPRINTF_METHOD_ARGS(), G3D_CHECK_PRINTF_ARGS(), G3D_CHECK_VPRINTF_ARGS(), G3D_START_AT_MAIN(), G3D_DECLARE_SYMBOL, G3D_DEBUG()

documentation generated on Wed Nov 24 2021 08:01:51 using doxygen 1.8.15