mirror of
https://github.com/libSDL2pp/libSDL2pp.git
synced 2025-09-17 11:14:52 -04:00
Merge branch 'readme-vs-doxygen'
This commit is contained in:
commit
78ccebea38
@ -859,7 +859,7 @@ IMAGE_PATH =
|
|||||||
# code is scanned, but not when the output code is generated. If lines are added
|
# code is scanned, but not when the output code is generated. If lines are added
|
||||||
# or removed, the anchors will not be placed correctly.
|
# or removed, the anchors will not be placed correctly.
|
||||||
|
|
||||||
INPUT_FILTER =
|
INPUT_FILTER = "sed -e '/^\[!\[/d' -e '/^```/,/^```/ s|^| &|' -e '/^ ```/ d'"
|
||||||
|
|
||||||
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
|
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
|
||||||
# basis. Doxygen will compare the file name with each pattern and apply the
|
# basis. Doxygen will compare the file name with each pattern and apply the
|
||||||
@ -868,7 +868,7 @@ INPUT_FILTER =
|
|||||||
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
|
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
|
||||||
# patterns match the file name, INPUT_FILTER is applied.
|
# patterns match the file name, INPUT_FILTER is applied.
|
||||||
|
|
||||||
FILTER_PATTERNS =
|
FILTER_PATTERNS = *.md
|
||||||
|
|
||||||
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
|
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
|
||||||
# INPUT_FILTER ) will also be used to filter the input files that are used for
|
# INPUT_FILTER ) will also be used to filter the input files that are used for
|
||||||
|
108
README.md
108
README.md
@ -7,66 +7,68 @@ This library provides C++11 bindings/wrapper for SDL2 and satellite libraries.
|
|||||||
|
|
||||||
## Synopsis ##
|
## Synopsis ##
|
||||||
|
|
||||||
try {
|
```c++
|
||||||
using namespace SDL2pp;
|
try {
|
||||||
|
using namespace SDL2pp;
|
||||||
|
|
||||||
// Init SDL; will be automatically deinitialized when the object is destroyed
|
// Init SDL; will be automatically deinitialized when the object is destroyed
|
||||||
SDL sdl(SDL_INIT_VIDEO);
|
SDL sdl(SDL_INIT_VIDEO);
|
||||||
|
|
||||||
// Likewise, init SDL_ttf library
|
// Likewise, init SDL_ttf library
|
||||||
SDLTTF sdl_ttf;
|
SDLTTF sdl_ttf;
|
||||||
|
|
||||||
// Straightforward wrappers around corresponding SDL2 objects
|
// Straightforward wrappers around corresponding SDL2 objects
|
||||||
// These take full care of proper object destruction and error checking
|
// These take full care of proper object destruction and error checking
|
||||||
Window window("libSDL2pp demo",
|
Window window("libSDL2pp demo",
|
||||||
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
|
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
|
||||||
640, 480, SDL_WINDOW_RESIZABLE);
|
640, 480, SDL_WINDOW_RESIZABLE);
|
||||||
Renderer renderer(window, -1, SDL_RENDERER_ACCELERATED);
|
Renderer renderer(window, -1, SDL_RENDERER_ACCELERATED);
|
||||||
Texture sprite1(renderer, SDL_PIXELFORMAT_ARGB8888,
|
Texture sprite1(renderer, SDL_PIXELFORMAT_ARGB8888,
|
||||||
SDL_TEXTUREACCESS_STATIC, 16, 16);
|
SDL_TEXTUREACCESS_STATIC, 16, 16);
|
||||||
Texture sprite2(renderer, "sprite.png"); // SDL_image support
|
Texture sprite2(renderer, "sprite.png"); // SDL_image support
|
||||||
|
|
||||||
Font font("Vera.ttf", 20); // SDL_ttf font
|
Font font("Vera.ttf", 20); // SDL_ttf font
|
||||||
|
|
||||||
// Create texture from surface containing text rendered by SDL_ttf
|
// Create texture from surface containing text rendered by SDL_ttf
|
||||||
Texture text(renderer, font.RenderText_Solid("Hello, world!",
|
Texture text(renderer, font.RenderText_Solid("Hello, world!",
|
||||||
SDL_Color{255, 255, 255, 255}));
|
SDL_Color{255, 255, 255, 255}));
|
||||||
|
|
||||||
unsigned char pixels[16 * 16 * 4];
|
unsigned char pixels[16 * 16 * 4];
|
||||||
|
|
||||||
// Note proper constructor for Rect
|
// Note proper constructor for Rect
|
||||||
sprite1.Update(Rect(0, 0, 16, 16), pixels, 16 * 4);
|
sprite1.Update(Rect(0, 0, 16, 16), pixels, 16 * 4);
|
||||||
|
|
||||||
// Most setter methods are chainable
|
// Most setter methods are chainable
|
||||||
renderer.SetLogicalSize(640, 480).SetRenderColor(0, 16, 32).Clear();
|
renderer.SetLogicalSize(640, 480).SetRenderColor(0, 16, 32).Clear();
|
||||||
|
|
||||||
// Also note a safe way to specify null rects and points
|
// Also note a safe way to specify null rects and points
|
||||||
renderer.Copy(sprite1, NullOpt, NullOpt);
|
renderer.Copy(sprite1, NullOpt, NullOpt);
|
||||||
|
|
||||||
// There are multiple convenient ways to construct e.g. a Rect;
|
// There are multiple convenient ways to construct e.g. a Rect;
|
||||||
// Objects provide extensive set of getters
|
// Objects provide extensive set of getters
|
||||||
renderer.Copy(text, NullOpt, Rect(Point(0, 0), text.GetSize()));
|
renderer.Copy(text, NullOpt, Rect(Point(0, 0), text.GetSize()));
|
||||||
|
|
||||||
// Copy() is overloaded, providing access to both SDL_RenderCopy and SDL_RenderCopyEx
|
// Copy() is overloaded, providing access to both SDL_RenderCopy and SDL_RenderCopyEx
|
||||||
renderer.Copy(sprite2, NullOpt, NullOpt, 45.0);
|
renderer.Copy(sprite2, NullOpt, NullOpt, 45.0);
|
||||||
|
|
||||||
renderer.Present();
|
renderer.Present();
|
||||||
|
|
||||||
// You can still access wrapped C SDL types
|
// You can still access wrapped C SDL types
|
||||||
SDL_Renderer* sdl_renderer = renderer.Get();
|
SDL_Renderer* sdl_renderer = renderer.Get();
|
||||||
|
|
||||||
// Of course, C SDL2 API is still perfectly valid
|
// Of course, C SDL2 API is still perfectly valid
|
||||||
SDL_Delay(2000);
|
SDL_Delay(2000);
|
||||||
|
|
||||||
// All SDL objects are released at this point or if an error occurs
|
// All SDL objects are released at this point or if an error occurs
|
||||||
} catch (SDL2pp::Exception& e) {
|
} catch (SDL2pp::Exception& e) {
|
||||||
// Exception stores SDL_GetError() result and name of function which failed
|
// Exception stores SDL_GetError() result and name of function which failed
|
||||||
std::cerr << "Error in: " << e.GetSDLFunction() << std::endl;
|
std::cerr << "Error in: " << e.GetSDLFunction() << std::endl;
|
||||||
std::cerr << " Reason: " << e.GetSDLError() << std::endl;
|
std::cerr << " Reason: " << e.GetSDLError() << std::endl;
|
||||||
} catch (std::exception& e) {
|
} catch (std::exception& e) {
|
||||||
// This also works (e.g. "SDL_Init failed: No available video device")
|
// This also works (e.g. "SDL_Init failed: No available video device")
|
||||||
std::cerr << e.what() << std::endl;
|
std::cerr << e.what() << std::endl;
|
||||||
}
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Features ##
|
## Features ##
|
||||||
|
|
||||||
@ -165,19 +167,23 @@ still recommended).
|
|||||||
Just place the library into dedicated directory in your project
|
Just place the library into dedicated directory in your project
|
||||||
(for example, extlib/libSDL2pp) and add
|
(for example, extlib/libSDL2pp) and add
|
||||||
|
|
||||||
SET(SDL2PP_WITH_IMAGE ON) # if you need SDL_image support
|
```cmake
|
||||||
SET(SDL2PP_WITH_TTF ON) # if you need SDL_ttf support
|
SET(SDL2PP_WITH_IMAGE ON) # if you need SDL_image support
|
||||||
ADD_SUBDIRECTORY(extlib/libSDL2pp)
|
SET(SDL2PP_WITH_TTF ON) # if you need SDL_ttf support
|
||||||
|
ADD_SUBDIRECTORY(extlib/libSDL2pp)
|
||||||
|
```
|
||||||
|
|
||||||
into your core CMakeLists.txt. This will act as similar to what
|
into your core CMakeLists.txt. This will act as similar to what
|
||||||
FIND_PACKAGE usually does, and will provide ${SDL2PP_INCLUDE_DIRS}
|
FIND_PACKAGE usually does, and will provide ${SDL2PP_INCLUDE_DIRS}
|
||||||
and ${SDL2PP_LIBRARIES} variables for your project. You will then
|
and ${SDL2PP_LIBRARIES} variables for your project. You will then
|
||||||
be able to use them as usual:
|
be able to use them as usual:
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${SDL2PP_INCLUDE_DIRS})
|
```cmake
|
||||||
|
INCLUDE_DIRECTORIES(${SDL2PP_INCLUDE_DIRS})
|
||||||
|
|
||||||
ADD_EXECUTABLE(mytarget ...)
|
ADD_EXECUTABLE(mytarget ...)
|
||||||
TARGET_LINK_LIBRARIES(mytarget ${SDL2PP_LIBRARIES})
|
TARGET_LINK_LIBRARIES(mytarget ${SDL2PP_LIBRARIES})
|
||||||
|
```
|
||||||
|
|
||||||
if bundled, libSDL2pp does not build examples and becomes a static
|
if bundled, libSDL2pp does not build examples and becomes a static
|
||||||
library, providing required SDL2 includes/libs in the mentioned
|
library, providing required SDL2 includes/libs in the mentioned
|
||||||
|
Loading…
x
Reference in New Issue
Block a user