mirror of
https://github.com/encounter/SDL.git
synced 2025-12-10 14:07:50 +00:00
checkkeys will now render text that is input
Also added test functions for multi-line debug text display Currently this only supports ASCII, as the font doesn't have the correct Latin-1 characters
This commit is contained in:
@@ -38,7 +38,8 @@ extern "C" {
|
||||
|
||||
/* Function prototypes */
|
||||
|
||||
#define FONT_CHARACTER_SIZE 8
|
||||
#define FONT_CHARACTER_SIZE 8
|
||||
#define FONT_LINE_HEIGHT (FONT_CHARACTER_SIZE + 2)
|
||||
|
||||
/**
|
||||
* \brief Draw a string in the currently set font.
|
||||
@@ -50,10 +51,12 @@ extern "C" {
|
||||
*
|
||||
* \returns 0 on success, -1 on failure.
|
||||
*/
|
||||
int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, char c);
|
||||
int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, Uint32 c);
|
||||
|
||||
/**
|
||||
* \brief Draw a string in the currently set font.
|
||||
* \brief Draw a UTF-8 string in the currently set font.
|
||||
*
|
||||
* The font currently only supports characters in the Basic Latin and Latin-1 Supplement sets.
|
||||
*
|
||||
* \param renderer The renderer to draw on.
|
||||
* \param x The X coordinate of the upper left corner of the string.
|
||||
@@ -64,6 +67,90 @@ int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, char c);
|
||||
*/
|
||||
int SDLTest_DrawString(SDL_Renderer *renderer, int x, int y, const char *s);
|
||||
|
||||
/**
|
||||
* \brief Data used for multi-line text output
|
||||
*/
|
||||
typedef struct SDLTest_TextWindow
|
||||
{
|
||||
SDL_Rect rect;
|
||||
int current;
|
||||
int numlines;
|
||||
char **lines;
|
||||
} SDLTest_TextWindow;
|
||||
|
||||
/**
|
||||
* \brief Create a multi-line text output window
|
||||
*
|
||||
* \param x The X coordinate of the upper left corner of the window.
|
||||
* \param y The Y coordinate of the upper left corner of the window.
|
||||
* \param w The width of the window (currently ignored)
|
||||
* \param h The height of the window (currently ignored)
|
||||
*
|
||||
* \returns the new window, or NULL on failure.
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0
|
||||
*/
|
||||
SDLTest_TextWindow *SDLTest_TextWindowCreate(int x, int y, int w, int h);
|
||||
|
||||
/**
|
||||
* \brief Display a multi-line text output window
|
||||
*
|
||||
* This function should be called every frame to display the text
|
||||
*
|
||||
* \param textwin The text output window
|
||||
* \param renderer The renderer to use for display
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0
|
||||
*/
|
||||
void SDLTest_TextWindowDisplay(SDLTest_TextWindow *textwin, SDL_Renderer *renderer);
|
||||
|
||||
/**
|
||||
* \brief Add text to a multi-line text output window
|
||||
*
|
||||
* Adds UTF-8 text to the end of the current text. The '\n' newline character starts a
|
||||
* new line of text. The '\b' backspace character deletes the last character or, if the
|
||||
* line is empty, deletes the line and goes to the end of the previous line.
|
||||
*
|
||||
* \param textwin The text output window
|
||||
* \param fmt A printf() style format string
|
||||
* \param ... additional parameters matching % tokens in the `fmt` string, if any
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0
|
||||
*/
|
||||
void SDLTest_TextWindowAddText(SDLTest_TextWindow *textwin, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
|
||||
/**
|
||||
* \brief Add text to a multi-line text output window
|
||||
*
|
||||
* Adds UTF-8 text to the end of the current text. The '\n' newline character starts a
|
||||
* new line of text. The '\b' backspace character deletes the last character or, if the
|
||||
* line is empty, deletes the line and goes to the end of the previous line.
|
||||
*
|
||||
* \param textwin The text output window
|
||||
* \param text The text to add to the window
|
||||
* \param len The length, in bytes, of the text to add to the window
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0
|
||||
*/
|
||||
void SDLTest_TextWindowAddTextWithLength(SDLTest_TextWindow *textwin, const char *text, size_t len);
|
||||
|
||||
/**
|
||||
* \brief Clear the text in a multi-line text output window
|
||||
*
|
||||
* \param textwin The text output window
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0
|
||||
*/
|
||||
void SDLTest_TextWindowClear(SDLTest_TextWindow *textwin);
|
||||
|
||||
/**
|
||||
* \brief Free the storage associated with a multi-line text output window
|
||||
*
|
||||
* \param textwin The text output window
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0
|
||||
*/
|
||||
void SDLTest_TextWindowDestroy(SDLTest_TextWindow *textwin);
|
||||
|
||||
/**
|
||||
* \brief Cleanup textures used by font drawing functions.
|
||||
|
||||
Reference in New Issue
Block a user