jubilant-funicular
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
nta Namespace Reference

Namespaces

 utils
 Namespace for classes/functionality not necessarily specific to game/opengl development.
 

Classes

class  Animation2D
 A 2D Animation made from a single SpriteSheet. More...
 
class  AudioManager
 
class  CallbackManager
 
class  Camera2D
 
struct  CharGlyph
 represents a single char in the texture More...
 
class  Component
 Base class for components. More...
 
class  ComponentRegistry
 A store of every Component type in use by an ECS. More...
 
class  Compressor
 Static class for compressing byte buffers. More...
 
class  ContextData
 
class  CreateInputManagerKey
 Key unlocking the InputManager constructor. More...
 
class  DebugBatch
 A collection of debug primitives (outlines of shapes) to be drawn. More...
 
class  ECS
 
struct  Error
 Something went wrong. More...
 
class  ErrorManager
 
class  EventTemplate
 
class  EventTemplate< void >
 Empty variant for use by ECS. More...
 
class  FontMap
 represents the organization of a texture containing the characters More...
 
class  FPSLimiter
 used to cap the fps of the program at a specific value More...
 
class  FrameBuffer
 A wrapper around an OpenGL Framebuffer object. More...
 
class  GetSDLWindowKey
 Key for unlocking the GetSDLWindow() "private" function of class Window. More...
 
class  GLSLProgram
 represents a program written in GLSL comprised of a vertex shader and a fragment shader More...
 
struct  GLTexture
 represents a texture (tied to a specific GL context) More...
 
struct  Glyph
 represents what is essentially a sprite More...
 
class  HuffmanLeaf
 represents a leaf in a Huffman tree More...
 
class  HuffmanNode
 A node in a Huffman tree. More...
 
class  ImageLoader
 loads images as GLTextures More...
 
class  InputManager
 keeps track of all input More...
 
class  InstanceBatch
 
struct  InstancedGlyph
 Represents a Glyph to be drawn multiple times with slight variations. More...
 
class  IOManager
 Handles binary file operations. More...
 
class  Logger
 stores program information in internal and external logs More...
 
class  Music
 Represents a longer piece of music. More...
 
struct  Particle2D
 Represents a simple 2d particle. More...
 
class  ParticleBatch2D
 Represents a batch of particles of the same "type". More...
 
class  ParticleEngine2D
 Responsible for handling multiple particle batches. More...
 
struct  Primitive
 represents a primitive (point, line, triangle, etc.) More...
 
class  PrimitiveBatch
 represents a collection of primitives to be drawn More...
 
class  Random
 Used for generating random numbers. More...
 
struct  RawTexture
 
struct  RenderBatch
 stores information about batches of vertices with the same texture in a vertex buffer object More...
 
class  ResourceManager
 
class  Result
 
class  ScopeLog
 Simple RAII type for logging entry/exit of scope. More...
 
class  Screen
 Represents a game screen. More...
 
class  ScreenManager
 
struct  ScreenSwitchInfo
 Info passed to Screen::onFocus. More...
 
class  SetIndicesKey
 Key unlocking the setIndices() "private" function of class Screen. More...
 
class  SetManagerKey
 Key unlocking the setManager() "private" function of class Screen. More...
 
class  SetWindowKey
 Key unlocking the setWindow() "private" function of class Screen. More...
 
class  SoundEffect
 Represents a sound effect or short audio clip. More...
 
class  SpriteBatch
 
class  SpriteFont
 Loads in a .ttf file, creates a font texture from it which is then used to render text. More...
 
struct  SpriteSheet
 Multiple sprites (each the same size) in one texture. More...
 
union  SpriteSheet.__unnamed__
 The dimensions of the sheet (rows x cols) More...
 
struct  SpriteSheet.__unnamed__.__unnamed__
 
class  Timer
 represents a timer More...
 
struct  Vertex2D
 represents a vertex in 2 dimensions More...
 
struct  VertexAttrib
 represents an attribute of a vertex (e.g. a call to glVertexAttribPointer) More...
 
class  Window
 Represent a window. More...
 
class  WindowManager
 Manages Windows (or GL contexts if you prefer) More...
 

Typedefs

using Entity = utils::SlotMapKey<>
 
using ComponentID = utils::SlotMapKey<>
 
template<typename T >
using ComponentList = utils::SlotMap< T >
 
typedef std::function< void(const Error *)> ErrorCallback
 
typedef std::vector< unsigned char > FileBuffer
 
typedef PrimitiveBatch PrimBatch
 
typedef utils::Wrapper< uint32_t, struct WIDTAG > WindowID
 

Enumerations

enum  ErrorType {
  MISSING_RESOURCE, INVALID_VALUE, GL_FAILURE, SDL_FAILURE,
  DEVIL_FAILURE, IMPOSSIBLE_BEHAVIOR, UNWRAP_WRONG_RESULT_VARIANT, OTHER
}
 Types of Error.
 
enum  MouseWheelMotion { STATIONARY = 0, SCROLL_UP = 1, SCROLL_DOWN = -1 }
 represents the way a mouse wheel was rolled
 
enum  ScreenState {
  NONE, RUNNING, SWITCH, SWITCH_ESC,
  SWITCH_X
}
 
enum  WindowFlags {
  INVISIBLE = 0x1, FULLSCREEN = 0x2, BORDERLESS = 0x4, NOTRESIZEABLE = 0x8,
  HIGHDPI = 0x10
}
 Flags used for creating a window.
 

Functions

std::string get_errortype_string (ErrorType t)
 converts ErrorType enum to string
 
void init (int gl_major_version=3, int gl_minor_version=2, bool use_gl_core=true)
 initializes some basic stuff for the engine
 
void cleanup ()
 deinitializes some stuff and destroys all managers
 
bool check_error ()
 Checks for and logs errors.
 
std::ostream & lock_stream (std::ostream &stream)
 Lock stream for thread-safe manipulation.
 
std::ostream & unlock_stream (std::ostream &stream)
 Unlock stream.
 

Variables

const typedef std::string & crstring
 
const typedef glm::ivec2 & crivec2
 
const typedef glm::vec2 & crvec2
 
const typedef glm::vec3 & crvec3
 
const typedef glm::vec4 & crvec4
 

Detailed Description

Todo:
Add Option type
Todo:

prefix all include guards with NTA_

Get a linter or something

Decide what things you want to be CamelCase and which you want to snake_case

Replace (almost) all raw pointers with (potentially custom) smart pointers

Todo:
Throughout codebase, indent case inside of switch blocks
Todo:
Make sure this code is OS-agnostic
Todo:
Have first-class support for arbitrary (i.e. user-defined) vertex types
Todo:
Figure out how to get rid of this file

Class Documentation

◆ nta::CharGlyph

struct nta::CharGlyph

represents a single char in the texture

Definition at line 19 of file SpriteFont.h.

Collaboration diagram for nta::CharGlyph:
Class Members
vec2 size the size of the rendered glyph
vec4 uvRect the rectangle containing this glyph in the texture

◆ nta::EventTemplate< void >

class nta::EventTemplate< void >

Empty variant for use by ECS.

Definition at line 76 of file Event.h.

Class Members
typedef void enum_type

◆ nta::SpriteSheet.__unnamed__

union nta::SpriteSheet.__unnamed__

The dimensions of the sheet (rows x cols)

Definition at line 58 of file Animation2D.h.

Class Members
__unnamed__ __unnamed__
ivec2 dims

◆ nta::SpriteSheet.__unnamed__.__unnamed__

struct nta::SpriteSheet.__unnamed__.__unnamed__

Definition at line 60 of file Animation2D.h.

Class Members
int num_cols
int num_rows