libmx2 2.2.1
C++20 multimedia and game-engine library (SDL2 / OpenGL / Vulkan)
Loading...
Searching...
No Matches
console.hpp File Reference

OpenGL-backed in-game terminal console for libmx2. More...

#include <iostream>
#include <string>
#include <sstream>
#include <unordered_map>
#include <memory>
#include <vector>
#include <functional>
#include <mutex>
#include <queue>
#include <atomic>
#include <condition_variable>
#include <thread>
#include "mx.hpp"
Include dependency graph for console.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  console::CommandQueue
 Thread-safe FIFO queue for dispatching console commands to a worker thread. More...
struct  console::CommandQueue::Command
 A single command entry with its text and completion callback. More...
class  console::ConsoleChars
 Glyph cache that maps each ASCII character to a pre-rendered SDL_Surface. More...
class  console::Console
 Core text-console widget backed by an SDL_Surface. More...
struct  console::Console::TextLine
class  console::GLConsole
 OpenGL-rendered overlay console built on top of Console. More...

Namespaces

namespace  gl
namespace  console

Macros

#define THREAD_MUTEX   std::recursive_mutex
#define THREAD_GUARD(mutex)
#define THREAD_ENABLED   1

Typedefs

typedef unsigned int GLuint

Enumerations

enum  console::FadeState { console::FADE_NONE , console::FADE_IN , console::FADE_OUT }

Detailed Description

OpenGL-backed in-game terminal console for libmx2.

Provides four related classes:

Depends on mx.hpp, gl.hpp (forward-declared) and SDL2/SDL_ttf. On Emscripten the threading primitives are replaced with no-op stubs.

Definition in file console.hpp.

Macro Definition Documentation

◆ THREAD_ENABLED

#define THREAD_ENABLED   1

Definition at line 59 of file console.hpp.

◆ THREAD_GUARD

◆ THREAD_MUTEX

#define THREAD_MUTEX   std::recursive_mutex

Definition at line 57 of file console.hpp.

Typedef Documentation

◆ GLuint

typedef unsigned int GLuint

Definition at line 38 of file console.hpp.