Update GraphicsApi.md file

Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
Vitalii Koshura 2023-02-21 11:59:50 +01:00
parent 65af5034a4
commit 9c5a6d8bfc
No known key found for this signature in database
GPG Key ID: CE0DB1726070A5A3
1 changed files with 66 additions and 66 deletions

@ -1,39 +1,39 @@
[[PageOutline]]
# Using OpenGL
The [BOINC graphics API](#api) provides cross-platform support for developing graphics apps.
A complete example can be found in [boinc/samples/example_app](ExampleApps).
# The BOINC Graphics API #api
# The BOINC Graphics API
BOINC supplies a library (libboinc_graphics2.a) with support for graphics apps.
To use this library, the graphics app must call
```
boinc_graphics_loop(int argc, char** argv);
```
after its initialization.
This function executes an event loop, and does not return.
The application must supply the following functions:
```
void app_graphics_init();
```
Called once, after the window has been created.
```
void app_graphics_render(int xs, ys, double time_of_day);
```
This will be called periodically.
It should generate the current graphic.
`xs` and `ys` are the X and Y sizes of the window, and `time_of_day` is the relative time in seconds.
```
void app_graphics_resize(int x, int y);
```
Called when the window size changes.
```
void boinc_app_mouse_move(
int x, int y, // new coords of cursor
int left, // whether left mouse button is down
@ -54,7 +54,7 @@ Called when the window size changes.
void boinc_app_key_release(
int, int // system-specific key encodings
)
```
# Support classes
@ -94,15 +94,15 @@ BOINC supports the display of text using TrueType fonts.
* Link with the [FreeType2](http://www.freetype.org)
and [FTGL](http://sourceforge.net/projects/ftgl/files/FTGL%20Source/) libraries.
Depending on how you build the FreeType2 library, FreeType2 may require the libz and libbz2 libraries.
For Windows, prebuilt libraries are available in the `boinc_depends_win_vs2005` repository.
For Windows, prebuilt libraries are available; see https://boinc.berkeley.edu/boinc_depends/.
To build these libraries on the Mac, please see MacBuild.
* Include the desired TrueType fonts in your [ app versions](AppVersionNew).
The set of free [fonts](Liberation)(https://fedorahosted.org/liberation-fonts) in included the `api/ttf/` directory.
The set of free [Liberation fonts](https://fedorahosted.org/liberation-fonts) in included the `api/ttf/` directory.
If you wish to use other TrueType fonts,
you'll need to adjust the list of font names in `ttfont.cpp`.
(Another source of free fonts is the [Freefont project](GNU)(http://www.gnu.org/software/freefont).)
(Another source of free fonts is the [GNU Freefont project](http://www.gnu.org/software/freefont).)
* To display text, use the following API functions:
```
float white[4] = {1., 1., 1., 1.};
APP_INIT_DATA aid;
boinc_get_init_data(aid);
@ -120,7 +120,7 @@ BOINC supports the display of text using TrueType fonts.
// default is Sans-Regular (0)
);
```
Other parameters to *ttf_render_string()* let you specify rotation; see ttfont.h.
Other parameters to **ttf_render_string()** let you specify rotation; see ttfont.h.
For examples, see the `clientscr/ss_app.cpp` and `samples/exampple_app/uc2_graphics.cpp` in the BOINC trunk.