These are a few examples of pntr in use.
Alpha Mask
void pntr_examples_alphamask() {
pntr_image* output =
pntr_gen_image_gradient(textSize.x, textSize.y, PNTR_RED, PNTR_DARKGREEN, PNTR_BLUE, PNTR_PURPLE);
}
PNTR_API void pntr_unload_image(pntr_image *image)
Definition pntr.h:1697
PNTR_API pntr_image * pntr_gen_image_gradient(int width, int height, pntr_color topLeft, pntr_color topRight, pntr_color bottomLeft, pntr_color bottomRight)
Definition pntr.h:5713
PNTR_API bool pntr_save_image(pntr_image *image, const char *fileName)
Definition pntr.h:4949
PNTR_API pntr_font * pntr_load_font_ttf(const char *fileName, int fontSize)
Definition pntr.h:4451
PNTR_API pntr_image * pntr_gen_image_text(pntr_font *font, const char *text, pntr_color tint, pntr_color backgroundColor)
Definition pntr.h:4349
PNTR_API void pntr_image_alpha_mask(pntr_image *image, pntr_image *alphaMask, int posX, int posY)
Definition pntr.h:5177
PNTR_API pntr_vector pntr_measure_text_ex(pntr_font *font, const char *text, int textLength)
Definition pntr.h:4287
PNTR_API void pntr_unload_font(pntr_font *font)
Definition pntr.h:3973
Fonts
void pntr_examples_fonts() {
pntr_draw_text(canvas, defaultFont,
"Default Font Example", 10, 50, PNTR_BLACK);
pntr_font* bmFont =
pntr_load_font_bmf(
"resources/bmfont.png",
" abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,!?-+/");
pntr_draw_text(canvas, bmFont,
"BM Font Example", 10, 90, PNTR_WHITE);
"\x7f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~");
const char* text = "*** TTY Font Example ***";
pntr_draw_text(canvas, ttyFont, text, canvas->width / 2 - textWidth / 2, 140, PNTR_WHITE);
const char* ttfText = "Привіт Світ!";
pntr_font* resizedFont =
pntr_font_scale(defaultFont, 2.0f, 2.0f, PNTR_FILTER_NEARESTNEIGHBOR);
pntr_draw_text_wrapped(canvas, bmFont,
"The quick brown fox jumps over the lazy dog.", 225, 50, 150, PNTR_RED);
int score = 42;
float fps = 60.5f;
pntr_draw_text_ex(canvas, defaultFont, 10, 190, PNTR_DARKGREEN, 0, "Score: %d FPS: %.1f", score, fps);
}
PNTR_API pntr_image * pntr_gen_image_color(int width, int height, pntr_color color)
Definition pntr.h:1500
PNTR_API pntr_color pntr_get_color(unsigned int hexValue)
Definition pntr.h:1778
PNTR_API int pntr_measure_text(pntr_font *font, const char *text)
Definition pntr.h:4274
PNTR_API void pntr_draw_image(pntr_image *dst, pntr_image *src, int posX, int posY)
Definition pntr.h:3221
PNTR_API void pntr_draw_rectangle_fill(pntr_image *dst, int posX, int posY, int width, int height, pntr_color color)
Definition pntr.h:2300
PNTR_API void pntr_draw_text_wrapped(pntr_image *dst, pntr_font *font, const char *text, int posX, int posY, int maxWidth, pntr_color tint)
Definition pntr.h:4152
PNTR_API void pntr_draw_text(pntr_image *dst, pntr_font *font, const char *text, int posX, int posY, pntr_color tint)
Definition pntr.h:4135
PNTR_API pntr_font * pntr_load_font_tty(const char *fileName, int glyphWidth, int glyphHeight, const char *characters)
Definition pntr.h:3897
PNTR_API pntr_font * pntr_load_font_bmf(const char *fileName, const char *characters)
Definition pntr.h:3742
PNTR_API pntr_font * pntr_load_font_default(void)
Definition pntr.h:4382
PNTR_API void pntr_draw_rectangle(pntr_image *dst, int posX, int posY, int width, int height, pntr_color color)
Definition pntr.h:2267
PNTR_API pntr_font * pntr_font_scale(pntr_font *font, float scaleX, float scaleY, pntr_filter filter)
Definition pntr.h:4026
Image
void pntr_examples_image() {
pntr_image* image;
pntr_image* resized;
resized =
pntr_image_resize(image, image->width / 2, image->height / 2, PNTR_FILTER_NEARESTNEIGHBOR);
pntr_rectangle rect;
rect.x = 25;
rect.y = 16;
rect.width = 65;
rect.height = 58;
pntr_draw_image_flipped(canvas, image, 240, 30, true, false, true);
}
PNTR_API pntr_image * pntr_load_image(const char *fileName)
Definition pntr.h:3176
PNTR_API void pntr_draw_image_rec(pntr_image *dst, pntr_image *src, pntr_rectangle srcRect, int posX, int posY)
Definition pntr.h:3256
PNTR_API pntr_image * pntr_image_resize(pntr_image *image, int newWidth, int newHeight, pntr_filter filter)
Definition pntr.h:3421
Resize
void pntr_examples_resize() {
float size = 0.5f;
canvas->width / 4 - originalImage->width * size / 2.0f,
canvas->height / 2 - originalImage->height * size / 2.0f,
size, size, 0.0f, 0.0f, PNTR_FILTER_NEARESTNEIGHBOR);
canvas->width / 2 + canvas->width / 4 - originalImage->width * size / 2.0f,
canvas->height / 2 - originalImage->height * size / 2.0f,
size, size, 0.0f, 0.0f, PNTR_FILTER_BILINEAR);
canvas->width / 2 - originalImage->width * 0.75f / 2.0f,
canvas->height / 2 - originalImage->height * 0.75f / 2.0f,
0.75f, 0.75, 0.0f, 0.0f, PNTR_FILTER_NEARESTNEIGHBOR);
}
PNTR_API void pntr_draw_image_scaled(pntr_image *dst, pntr_image *src, int posX, int posY, float scaleX, float scaleY, float offsetX, float offsetY, pntr_filter filter)
Definition pntr.h:5319
Rotate
void pntr_examples_rotate() {
pntr_draw_image_rotated(canvas, imageToRotate, 10, canvas->height / 2, 0.0f, 0, imageToRotate->height / 2.0f, PNTR_FILTER_NEARESTNEIGHBOR);
pntr_draw_image_rotated(canvas, imageToRotate, 140, canvas->height / 2, 32.0f, 0, imageToRotate->height / 2.0f, PNTR_FILTER_BILINEAR);
pntr_draw_image_rotated(canvas, imageToRotate, 280, canvas->height / 2, 180.0f, 0, imageToRotate->height / 2.0f, PNTR_FILTER_BILINEAR);
}
PNTR_API void pntr_draw_image_rotated(pntr_image *dst, pntr_image *src, int posX, int posY, float degrees, float offsetX, float offsetY, pntr_filter filter)
Definition pntr.h:5522
Shapes
void pntr_examples_shapes() {
pntr_color lightGreen = PNTR_GREEN;
lightGreen.rgba.a = 180;
pntr_color lightBlue = PNTR_BLUE;
lightBlue.rgba.a = 180;
pntr_draw_rectangle_thick(canvas, 10, 120, 50, 50, 5, PNTR_RED);
pntr_draw_rectangle_thick(canvas, 20, 130, 50, 50, 5, PNTR_GREEN);
pntr_draw_rectangle_thick(canvas, 30, 140, 50, 50, 5, PNTR_BLUE);
250, 50,
300, 80,
350, 20, PNTR_PURPLE);
pntr_draw_rectangle_gradient(canvas, 100, 120, 80, 80, PNTR_RED, PNTR_GREEN, PNTR_BLUE, PNTR_BLACK);
pntr_vector points[10];
points[0] = PNTR_CLITERAL(pntr_vector) {210, 110};
points[1] = PNTR_CLITERAL(pntr_vector) {215, 130};
points[2] = PNTR_CLITERAL(pntr_vector) {240, 140};
points[3] = PNTR_CLITERAL(pntr_vector) {200, 160};
pntr_draw_polygon_fill(canvas, points, 4, PNTR_BLUE);
pntr_draw_polygon(canvas, points, 4, PNTR_BLACK);
int radius = 40;
pntr_draw_arc_fill(canvas, 300, 120, radius, 90.0f, 180.0f, radius * 1.5f, PNTR_ORANGE);
pntr_draw_arc(canvas, 300, 120, radius, 90.0f, 180.0f, radius *1.5f, PNTR_RED);
points[0] = PNTR_CLITERAL(pntr_vector) {240, 80};
points[1] = PNTR_CLITERAL(pntr_vector) {260, 100};
points[2] = PNTR_CLITERAL(pntr_vector) {220, 110};
points[3] = PNTR_CLITERAL(pntr_vector) {240, 130};
pntr_draw_polyline(canvas, points, 4, PNTR_PURPLE);
pntr_draw_line_curve(canvas, points[0], points[1], points[2], points[3], 40, PNTR_DARKBLUE);
}
PNTR_API void pntr_draw_circle(pntr_image *dst, int centerX, int centerY, int radius, pntr_color color)
Definition pntr.h:2391
PNTR_API void pntr_draw_triangle_fill(pntr_image *dst, int x1, int y1, int x2, int y2, int x3, int y3, pntr_color color)
Definition pntr.h:2767
PNTR_API void pntr_draw_line(pntr_image *dst, int startPosX, int startPosY, int endPosX, int endPosY, pntr_color color)
Definition pntr.h:1863
PNTR_API void pntr_draw_ellipse_fill(pntr_image *dst, int centerX, int centerY, int radiusX, int radiusY, pntr_color color)
Definition pntr.h:2597
PNTR_API void pntr_draw_circle_fill(pntr_image *dst, int centerX, int centerY, int radius, pntr_color color)
Definition pntr.h:2448
PNTR_API void pntr_draw_ellipse(pntr_image *dst, int centerX, int centerY, int radiusX, int radiusY, pntr_color color)
Definition pntr.h:2547
Sprite
void pntr_examples_sprite() {
pntr_rectangle frameRec;
frameRec.x = 0;
frameRec.y = 0;
frameRec.width = scarfy->width / 6;
frameRec.height = scarfy->height;
frameRec.x = 1 * (float)scarfy->width / 6;
frameRec.x = 3 * (float)scarfy->width / 6;
frameRec.x = 5 * (float)scarfy->width / 6;
}
Thick
void pntr_examples_thick() {
pntr_draw_rectangle_thick(canvas, 10, 120, 50, 50, 5, PNTR_RED);
pntr_draw_rectangle_thick(canvas, 20, 130, 50, 50, 5, PNTR_GREEN);
pntr_draw_rectangle_thick(canvas, 30, 140, 50, 50, 5, PNTR_BLUE);
250, 50,
300, 80,
350, 20, 5, PNTR_PURPLE);
pntr_vector points[10];
points[0] = PNTR_CLITERAL(pntr_vector) {210, 110};
points[1] = PNTR_CLITERAL(pntr_vector) {215, 130};
points[2] = PNTR_CLITERAL(pntr_vector) {240, 140};
points[3] = PNTR_CLITERAL(pntr_vector) {200, 160};
pntr_draw_polygon_thick(canvas, points, 4, 5, PNTR_BLACK);
int radius = 80;
pntr_draw_arc_thick(canvas, 350, 120, radius, 90.0f, 180.0f, radius * 1.5f, 12, PNTR_RED);
points[0] = PNTR_CLITERAL(pntr_vector) {240, 80};
points[1] = PNTR_CLITERAL(pntr_vector) {260, 100};
points[2] = PNTR_CLITERAL(pntr_vector) {220, 110};
points[3] = PNTR_CLITERAL(pntr_vector) {240, 130};
pntr_draw_polyline_thick(canvas, points, 4, 5, PNTR_PURPLE);
pntr_draw_line_curve_thick(canvas, points[0], points[1], points[2], points[3], 40, 5, PNTR_DARKBLUE);
pntr_draw_line_vertical_thick(canvas, 20, 20, 80, 12, PNTR_ORANGE);
pntr_draw_line_horizontal_thick(canvas, 40, 20, 80, 12, PNTR_DARKBROWN);
}
PNTR_API void pntr_draw_ellipse_thick(pntr_image *dst, int centerX, int centerY, int radiusX, int radiusY, int thickness, pntr_color color)
Definition pntr.h:2645
PNTR_API void pntr_draw_line_thick(pntr_image *dst, int startPosX, int startPosY, int endPosX, int endPosY, int thickness, pntr_color color)
Definition pntr.h:1959
PNTR_API void pntr_draw_circle_thick(pntr_image *dst, int centerX, int centerY, int radius, int thickness, pntr_color color)
Definition pntr.h:2493
PNTR_API void pntr_draw_triangle_thick(pntr_image *dst, int x1, int y1, int x2, int y2, int x3, int y3, int thickness, pntr_color color)
Definition pntr.h:2748