ge211
ge211_forward.h
1 #pragma once
2 
3 // Forward declarations for some useful SDL2 types.
4 struct SDL_KeyboardEvent;
5 union SDL_Event;
6 struct SDL_Renderer;
7 struct SDL_RWops;
8 struct SDL_Surface;
9 struct SDL_Texture;
10 struct SDL_Window;
11 struct Mix_Chunk;
12 struct _Mix_Music;
13 typedef struct _Mix_Music Mix_Music;
14 struct _TTF_Font;
15 typedef struct _TTF_Font TTF_Font;
16 
17 // Forward declarations for all ge211 types.
18 namespace ge211 {
19 
20 class Abstract_game;
21 class Color;
22 class Font;
23 class Sprite_set;
24 class Window;
25 
27 namespace detail {
28 
29 class Engine;
30 class File_resource;
31 struct Placed_sprite;
32 class Renderer;
33 class Session;
34 class Render_sprite;
35 class Texture;
36 class Texture_sprite;
37 
38 } // end namespace detail
39 
40 namespace audio {
41 
42 enum class Channel_state;
43 class Mixer;
44 class Music_track;
45 class Sound_effect;
46 class Sound_effect_handle;
47 
48 } // end namespace audio
49 
50 namespace events {
51 
52 class Key;
53 enum class Mouse_button;
54 
55 } // end namespace events
56 
57 namespace exceptions {
58 
59 class Exception_base;
60 class Client_logic_error;
61 class Environment_error;
62 class Ge211_logic_error;
63 class Host_error;
64 class File_error;
65 class Font_error;
66 class Image_error;
67 class Mixer_error;
68 
69 } // end namespace exception
70 
71 namespace geometry {
72 
73 template <class> struct Basic_dimensions;
74 template <class> struct Basic_position;
75 template <class> struct Basic_rectangle;
76 
80 class Transform;
81 
82 } // end namespace geometry
83 
84 namespace sprites {
85 
86 class Sprite;
87 
88 class Circle_sprite;
89 class Image_sprite;
90 class Multiplexed_sprite;
91 class Rectangle_sprite;
92 class Text_sprite;
93 
94 } // end namespace sprites
95 
96 namespace time {
97 
98 class Duration;
99 class Time_point;
100 
101 class Timer;
102 class Pausable_timer;
103 
104 } // end namespace time
105 
106 // Bring everything but detail into the ge211 namespace.
107 
108 using namespace audio;
109 using namespace events;
110 using namespace exceptions;
111 using namespace geometry;
112 using namespace sprites;
113 using namespace time;
114 
115 }
Mouse_button
A representation of a mouse button.
Definition: ge211_event.h:18
A Sprite that displays a bitmap image.
A class for timing intervals. The result is a Duration.
Definition: ge211_time.h:242
A Sprite that renders as a solid rectangle.
The game engine namespace.
Definition: ge211.h:17
Represents a positioned rectangle.
Definition: ge211_forward.h:75
A point in time.
Definition: ge211_time.h:160
A class for timing intervals while supporting pausing.
Definition: ge211_time.h:291
A Sprite that allows switching between other sprites based on the time at rendering.
A sprite is an image that knows how to render itself to the screen at a given location, under a particular transformation.
Definition: ge211_sprites.h:33
A Sprite that renders as a solid circle.
Represents the dimensions of an object, or more generally, the displacement between two Basic_positio...
Definition: ge211_forward.h:73
A position in the T-valued Cartesian plane.
Definition: ge211_forward.h:74
A rendering transform, which can scale, flip, and rotate.
A Sprite that displays text.
A length of time.
Definition: ge211_time.h:30