Index
A
- A* algorithm
- used, for solving pathfinding problem / Pathfinding for tile-based environments with obstacles, Getting ready, How to do it…, How it works…
- absolute mouse position
- affine transformations
- URL / How it works…
- artificial intelligence
- about / Introduction
- assert function
- used, for handling errors / Handling errors with pcall, xpcall, and assert, How to do it…
- audio subsystem
- initializing / Initializing the audio subsystem, How to do it…, How it works…
B
- background music
- playing / Playing background music, How to do it…, How it works…
- beginContact callback / The beginContact callback
- bitmap fonts
- blending
- setting up / Setting up blending, Getting ready, How it works…
- additive blending / Additive blending
- subtractive blending / Subtractive blending
- alpha blending / Alpha blending, How it works…
- functions / How it works…
- blitting / How to do it…
- Box2D
- using, with Lua / Using Box2D with Lua, How to do it…, How it works...
- URL / How it works…
- bullets
- setting up / Setting up bullets, How to do it…, How it works…
- bumpmapping
- about / Bumpmapping, How to do it…
- vertex shader code / Vertex shader
- fragment shader / Fragment shader
- working / How it works…, See also
- buttons, window controls
C
- client-server architecture
- creating / Creating a basic client-server architecture, Getting ready
- server part / The server part
- client part / The client part
- working / How it works…
- tcp / How it works…
- ipc / How it works…
- inproc / How it works…
- pgm or egm / How it works…
- colors
- using / Using colors, Getting ready, How to do it…, How it works…
- cursor
- manipulating / Cursor manipulation, How to do it…
D
- D* searching algorithm / There's more…
- decision making
- fuzzy logic, using / Using a fuzzy logic for decision making, Getting ready, How to do it…
- digital sound processing (DSP) / How it works…
- display lists
- using / Using display lists, How to do it…, How it works…
- GL_COMPILE mode / How to do it…
- GL_COMPILE_AND_EXECUTE mode / How to do it…
- distance joint / The distance joint
- draw function / Child window rendering
- dynamic objects
E
- endContact callback / The endContact callback
- endianness / How to do it…
- errors
- handling, with assert / Handling errors with pcall, xpcall, and assert, How it works…
- handling, with pcall / Handling errors with pcall, xpcall, and assert, How it works…
- handling, with xpcall / Handling errors with pcall, xpcall, and assert, How it works…
- event types, LuaSDL
- SDL_ACTIVEEVENT / Event handling with an associative array
- SDL_KEYDOWN / Event handling with an associative array
- SDL_KEYUP / Event handling with an associative array
- SDL_MOUSEMOTION / Event handling with an associative array
- SDL_MOUSEBUTTONDOWN / Event handling with an associative array
- SDL_MOUSEBUTTONUP / Event handling with an associative array
- SDL_JOYAXISMOTION / Event handling with an associative array
- SDL_JOYBUTTONDOWN / Event handling with an associative array
- SDL_JOYBUTTONUP / Event handling with an associative array
- SDL_JOYHATMOTION / Event handling with an associative array
- SDL_JOYBALLMOTION / Event handling with an associative array
- SDL_VIDEORESIZE / Event handling with an associative array
- SDL_VIDEOEXPOSE / Event handling with an associative array
- SDL_SYSWMEVENT / Event handling with an associative array
- SDL_USEREVENT / Event handling with an associative array
- SDL_QUIT / Event handling with an associative array
F
- floating-point numbers
- URL / How it works…
- format specifiers
- s(1) / Getting ready
- i(n) / Getting ready
- f(n) / Getting ready
- d(n) / Getting ready
- b(n) / Getting ready
- fragment (pixel) shader
- writing / Writing a fragment (pixel) shader, How to do it…, How it works…, See also
- sampler types / How it works…
- friction joint / The friction joint
- functions, text rendering / How to do it…
- fuzzy logic
- using, for decision making / Using a fuzzy logic for decision making, Getting ready, How to do it…
- fuzzy set / A fuzzy set
- linguistic variable / A linguistic variable
- rule / A rule
- solver / A solver
- usage / A usage
- working / How it works…
G
- game engine
- basic file structure, preparing / Preparing a basic file structure for the game engine, How to do it…, How it works…
- gear joint / The gear joint
- gl.Begin command / How to do it…
- gl.BindVertexArray function / Vertex texture coordinates
- gl.BufferData function / How it works…
- gl.CopyImageSubData function / The render buffer with the depth attachment
- gl.DisableVertexArray function / Vertex texture coordinates
- gl.DrawArrays function / Vertex texture coordinates
- gl.EnableVertexAttribArray function / Vertex texture coordinates
- gl.GenBuffers function / Getting ready
- gl.GenVertexArrays function / Getting ready
- gl.GetUniformLocation function / Getting ready
- gl.IsSupported function / Getting ready
- GLEW
- using, with OpenGL extensions / Getting ready, How to do it…
- glGet function
- URL / Getting ready
- GLSL shaders
- loading / Loading and using GLSL shaders, How to do it…, How it works…
- using / Loading and using GLSL shaders, Getting ready, How to do it…, How it works…
- vertex shader / Loading and using GLSL shaders
- Tessellation control shader / Loading and using GLSL shaders
- Tessellation evaluation shader / Loading and using GLSL shaders
- geometry shader / Loading and using GLSL shaders
- fragment shader / Loading and using GLSL shaders
- extension names, URL / Getting ready
- GLUT
- graphics mode
- initializing, with OpenGL / Initializing the graphics mode with OpenGL, How to do it…, How it works…
H
- highlights
- applying, in scene / Applying highlights and shadows to the scene, Getting ready, How to do it…
- vertex shader / Vertex shader
- fragment shader / Fragment shader, How it works…
- High Precision Event Timer (HPET) / Using timers
- high water mark (HWM) / How it works…
I
- image format
- URL / How to do it…
- images
- loading, with SDL_image / Loading images with SDL_image, How to do it…, How it works…
- loading, directly to surface / How to do it…
- loading, with RWop / How to do it…
- immediate mode
- primitives, drawing / Drawing primitives in immediate mode, Getting ready
- input events
- processing, with LuaSDL / Processing input events with LuaSDL, Getting ready, How to do it…
- ipairs function
- extending, for use in sparse arrays / Getting ready, How it works…
- Ipairs_sparse function / How it works…
- isPrintable function / How it works…
K
- keyboard input
- using / Using the keyboard input, How to do it…, How it works…
- normal keys / Normal keys
- modifier keys / Modifier keys
- Kronos
- URL / How to do it…
L
- libSDL
- window, creating / Creating a window in libSDL, Getting ready, How to do it…, How it works…
- flags / How to do it…
- libSDL 1.2
- LuaSDL, obtaining for / Getting LuaSDL for libSDL 1.2, Getting ready, There's more…
- libSDL2 wiki page
- URL / There's more…
- lighting
- setting up / Setting up lighting, How to do it…, There's more…
- Lua
- about / Introduction
- using, with existing projects written in C/C++ / Using Lua with existing projects written in C/C++, How to do it…, Creating a Lua module in C/C++, Passing variables from C/C++ into the Lua environment, Making the C++ class accessible from Lua with Lutok2, How it works…
- state, initializing / Initializing the Lua state
- module, creating in C/C++ / Creating a Lua module in C/C++
- variables, passing from C/C++ / Passing variables from C/C++ into the Lua environment
- variables, passing from / Passing variables from the Lua environment to C/C++
- C++ class, accessing with Lutok2 / Making the C++ class accessible from Lua with Lutok2
- using, with OpenGL extensions / Getting ready, How to do it…
- Box2D, using with / Using Box2D with Lua, How to do it…, How it works...
- lua-users wiki page
- URL / How to do it…
- Lua binary files
- URL / Getting ready
- LuaGL
- URL / Getting ready
- Lua modules
- creating / Creating Lua modules, How to do it…
- table as interface, returning / A module that returns a table as an interface
- form of object / A module in the form of an object
- form of singleton object / A module in the form of a singleton object
- working / How it works…
- LuaSDL
- obtaining, for libSDL 1.2 / Getting LuaSDL for libSDL 1.2, Getting ready, There's more…
- libraries source files, URL / Getting ready
- used, for designing main application loop / Designing the main application loop with LuaSDL, How to do it…, How it works…
- used, for processing input events / Processing input events with LuaSDL, Getting ready, How to do it…, Event handling with an associative array, How it works…
- if-then-else chain, used for event handling / Event handling with the if-then-else chain
- associative array, used for event handling / Event handling with an associative array
- LuaSDL 2
- about / Introduction
- LuaSDL2
- URL / There's more…
- Lutok2
- source code, URL / Getting ready
- used, for accessing C++ class from Lua / Making the C++ class accessible from Lua with Lutok2, How it works…
M
- main application loop
- designing, with LuaSDL / Designing the main application loop with LuaSDL, How to do it…, How it works…
- materials
- setting up / Setting up materials, Getting ready, How to do it…, There's more…
- matrix manipulation library
- URL / Getting ready
- maxMotorTorque property / Revolute joint
- maze
- pathfinding algorithm, creating / A simple pathfinding algorithm for a maze, Getting ready, How to do it…
- generating / Maze generation
- solving / Maze solving
- messages
- sending, to multiple hosts / Sending messages to many hosts at once, The publisher part, The subscriber part, How it works…
- messages, sending to multiple hosts
- about / Sending messages to many hosts at once
- publisher part / The publisher part
- subscriber part / The subscriber part
- steps / How it works…
- modding support / Introduction
- modes, text rendering
- solid / How to do it…
- shaded / How to do it…
- blended / How to do it…
- motor joint / The motor joint
- mouse joint / The mouse joint
N
- neighbours function / How it works…
- network communication
- ZeroMQ, using / Network communication with ZeroMQ, How to do it…, How it works…
- NormalMap Online
- URL / Bumpmapping
O
- object collision
- detecting / Detecting object collision, How it works…
- beginContact callback / The beginContact callback
- endContact callback / The endContact callback
- preSolve callback / The preSolve callback
- postSolve callback / The postSolve callback, There's more…
- object collision filtering
- setting up / Setting up object collision filtering, How it works…
- object joints
- setting up / Setting up object joints, How to do it…
- revolute joint / Revolute joint
- prismatic joint / The prismatic joint
- distance joint / The distance joint
- rope joint / The rope joint
- weld joint / The weld joint
- pulley joint / The pulley joint
- wheel joint / The wheel joint
- gear joint / The gear joint
- motor joint / The motor joint
- mouse joint / The mouse joint
- friction joint / The friction joint
- working / How it works…
- object properties
- setting up / Setting up object properties, Getting ready
- movement damping / Movement damping
- object gravity scale / Object gravity scale
- fixed rotation / Fixed rotation
- object sleeping / Object sleeping
- object mass / Object mass and rotational inertia
- rotational inertia / Object mass and rotational inertia
- friction / Friction
- restitution property / Restitution
- density / Density
- objects
- moving / Moving, rotating, and scaling objects, Getting ready, How to do it…, How it works…, Moving objects, Getting ready
- rotating / Moving, rotating, and scaling objects, Getting ready, How to do it…, How it works…
- scaling / Moving, rotating, and scaling objects, Getting ready, How to do it…, How it works…
- identity matrix / The identity matrix
- translation matrix / The translation matrix
- rotation matrix / The rotation matrix
- continual force / The continual force
- impulses / Impulses
- object velocity information / Object velocity information
- working / How it works…
- OpenGL
- used, for initializing graphics mode / Initializing the graphics mode with OpenGL, How to do it…, How it works…
- using / Introduction
- OpenGL, attributes
- SDL_GL_RED_SIZE / How to do it…
- SDL_GL_GREEN_SIZE / How to do it…
- SDL_GL_BLUE_SIZE / How to do it…
- SDL_GL_ALPHA_SIZE / How to do it…
- SDL_GL_BUFFER_SIZE / How to do it…
- SDL_GL_DOUBLEBUFFER / How to do it…
- SDL_GL_DEPTH_SIZE / How to do it…
- SDL_GL_STENCIL_SIZE / How to do it…
- SDL_GL_ACCUM_RED_SIZE / How to do it…
- SDL_GL_ACCUM_GREEN_SIZE / How to do it…
- SDL_GL_ACCUM_BLUE_SIZE / How to do it…
- SDL_GL_ACCUM_ALPHA_SIZE / How to do it…
- SDL_GL_STEREO / How to do it…
- SDL_GL_MULTISAMPLEBUFFERS / How to do it…
- SDL_GL_MULTISAMPLESAMPLES / How to do it…
- SDL_GL_ACCELERATED_VISUAL / How to do it…
- SDL_GL_CONTEXT_PROFILE_MASK / How to do it…
- OpenGL constants
- URL / Getting ready
- OpenGL extensions
- using, with GLEW / Using OpenGL extensions with GLEW and Lua, How it works…
- using, with Lua / Getting ready, How it works…
- OpenGL information
- obtaining / Getting OpenGL information, Getting ready, How it works…
- version, obtaining / Getting the OpenGL version
- graphic card vendor, obtaining / Getting the graphic card vendor
- graphic card name, obtaining / Getting the graphic card name
- extensions list, obtaining / Getting the extensions list
- OpenGL® Registry
- orthogonal camera
- setting up / Setting up the orthogonal and perspective cameras, The perspective mode, There's more…
- orthogonal mode / The orthogonal mode
- working / How it works…, There's more…
- os_name.lua module
- URL / Getting ready
P
- pathfinding algorithm
- creating, for maze / A simple pathfinding algorithm for a maze, Getting ready
- working / How it works…
- pathfinding problem
- solving, with A* algorithm / Pathfinding for tile-based environments with obstacles, Getting ready, How to do it…, How it works…
- pcall function
- used, for handling errors / Handling errors with pcall, xpcall, and assert, How it works…
- perspective camera
- setting up / Setting up the orthogonal and perspective cameras, The perspective mode, There's more…
- perspective mode / The perspective mode
- working / How it works…, There's more…
- physics engine
- vector scaling, selecting / Choosing the correct vector scaling for the physics engine, How to do it…, How it works…
- physics simulation
- about / Introduction
- running / Running the physics simulation, How to do it…
- fixed-time step / The fixed-time step
- dynamic-time step / The dynamic-time step, How it works…, There's more…
- postSolve callback / The postSolve callback
- preSolve callback / The preSolve callback
- primitives
- drawing, in immediate mode / Drawing primitives in immediate mode, Getting ready
- points, drawing / Drawing points
- lines, drawing / Drawing lines
- line strips, drawing / Drawing line strips
- line loops, drawing / Drawing line loops
- triangles, drawing / Drawing triangles
- triangle strips, drawing / Drawing triangle strips
- triangle fans, drawing / Drawing triangle fans
- quads, drawing / Drawing quads
- quad strips, drawing / Drawing quad strips
- polygons, drawing / Drawing polygons
- working / How it works…
- prioritized queue
- creating / Making a prioritized queue, How to do it…, How it works…
- prismatic joint / The prismatic joint
- propagateSignal function / How it works…
- pulley joint / The pulley joint
Q
- queue
- creating / Making a queue, How to do it…, How it works…
R
- relative mouse position
- revolute joint / Revolute joint
- rope joint / The rope joint
- rounding error / How it works…
- rover-design pattern
- used, for creating texture atlas / Creating texture atlas with the rover-design pattern, How it works…
S
- scene
- highlights, applying / Applying highlights and shadows to the scene, Getting ready, How to do it…, Vertex shader
- shadows, applying / Getting ready, How to do it…, Vertex shader
- SDL.SDL_EnableKeyRepeat function / How it works…
- SDL.SDL_Event_local function / How to do it…
- SDL.SDL_PollEvent function / How to do it…
- SDLK key symbol constants
- URL / See also
- SDL_image
- used, for loading images / Loading images with SDL_image, How to do it…, How it works…
- shaders
- about / Introduction
- uniform variables, using with / Using uniform variables with shaders, Getting ready
- shadows
- applying, in scene / Applying highlights and shadows to the scene, Getting ready, How to do it…
- shadow samplers / There's more…
- shadow surface / How it works…
- sound samples
- playing / Playing sound samples, Getting ready, How it works…, There's more…
- SourceForge.net page
- LuaBinaries, URL / Getting ready
- sparse arrays
- ipairs function, extending / Extending ipairs for use in sparse arrays
- stack
- creating / Making a stack, How to do it…, How it works…
- static objects
- stencil test
- used, for displaying window part / Showing the part of the window with the stencil test and window content scrolling, How to do it…, How it works…
- surfaces
- creating / Creating surfaces, Getting ready, How to do it…, There's more…
- object structure / Getting ready
- pixel format structure / Getting ready
- manipulating / Surfaces manipulation, How to do it…, How it works…
T
- text
- displaying / Displaying the text, How to do it…, How it works…
- Text API
- URL / Edit box
- texture
- rendering to / Rendering to texture
- render buffer, with color attachment / The render buffer with the color attachment
- render buffer, with depth attachment / The render buffer with the depth attachment
- texture atlas
- creating, with rover-design pattern / Creating texture atlas with the rover-design pattern, Getting ready, How it works…
- textures
- creating / Creating textures, Getting ready, How to do it…, There's more…
- GL_TEXTURE_WRAP_x parameter / How to do it…
- GL_TEXTURE_MIN_FILTER parameter / How to do it…
- GL_TEXTURE_MAG_FILTER parameter / How to do it…
- textureSize function / How it works…
- threads
- communication between / Communication between threads, How to do it…, How it works…
- Reply part / How to do it…
- tile-based environments
- pathfinding, with obstacles / Pathfinding for tile-based environments with obstacles, Getting ready, How to do it…, How it works…
- heuristic function / Heuristic
- tiles
- using, in game / Using tiles and tilesets in the game, Getting ready, How to do it…, How it works…
- tilesets
- using, in game / Using tiles and tilesets in the game, Getting ready, How to do it…, How it works…
- about / Using tiles and tilesets in the game
- timers
- using / Using timers, How to do it…, There's more…
- TrueType fonts
U
- uniforms / Loading and using GLSL shaders
- uniform variables
- using, with shaders / Using uniform variables with shaders, Getting ready
- writing into / Writing into uniform variables
- reading from / Reading from uniform variables, How it works…
V
- vector math
- using / Using vector math, How to do it…, How it works…
- vector scaling
- selecting, for physics engine / Choosing the correct vector scaling for the physics engine, How to do it…, How it works…
- vertex array objects (VAO) / Drawing primitives using vertex buffers
- vertex buffer
- setting up / Setting up the vertex buffer, How to do it…, How it works…
- GL_STREAM_DRAW / How it works…
- GL_STREAM_READ / How it works…
- GL_STREAM_COPY / How it works…
- GL_STATIC_DRAW / How it works…
- GL_STATIC_READ / How it works…
- GL_STATIC_COPY / How it works…
- GL_DYNAMIC_DRAW / How it works…
- GL_DYNAMIC_READ / How it works…
- GL_DYNAMIC_COPY / How it works…
- vertex buffer objects (VBO) / Getting ready
- vertex buffers
- used for drawing primitives / Drawing primitives using vertex buffers
- vertex positions / Vertex positions
- vertex colors / Vertex colors
- vertex texture coordinates / Vertex texture coordinates
- working / How it works…, There's more…
- vertex shader
- writing / Writing a vertex shader, How to do it…, How it works…
W
- weld joint / The weld joint
- wheel joint / The wheel joint
- window
- creating, in libSDL / Creating a window in libSDL, Getting ready, How to do it…
- drawing / Drawing a simple window, How to do it…
- working / How it works…
- moving / Moving the window, How to do it…, How it works…
- content scrolling / Showing the part of the window with the stencil test and window content scrolling, How to do it…, How it works…
- part, displaying with stencil test / Showing the part of the window with the stencil test and window content scrolling, How to do it…, How it works…
- window controls
- creating / Window controls and interaction, Button
- interaction / Window controls and interaction
- buttons / Button
- edit box / Edit box, How it works…
- working / How it works…, There's more…
- window hierarchy
- using / Using the window hierarchy, How to do it…
- child window, rendering / Child window rendering
- event propagation / Event propagation, How it works…
X
- xpcall function
- used, for handling errors / Handling errors with pcall, xpcall, and assert, How it works…
Z
- ZeroMQ
- about / Introduction
- used, for network communication / Network communication with ZeroMQ, How to do it…, How it works…