gosu 0.15.1 → 0.15.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1449a3ca8ec9bbfe03a06c7b8602f8ba342689cfb063d164d81105063b078512
4
- data.tar.gz: 940808da15d888b9f8e383d03620630a8c0bbd08284fe53a314a9bbc675bcc6b
3
+ metadata.gz: '0296b3949deeaa56bbd8b81beb0e584871dc1b27c0a9898efd8d72e79a7dc367'
4
+ data.tar.gz: d5066f88ba59903e0fc3c5a536dae0f3bf218814e83449c2a0a657837be8ea82
5
5
  SHA512:
6
- metadata.gz: 6791b229fc790e46372057ee5e45c339b808ad9ad3866d2c223bc3cd1c3ec51626254e4567a7a8a0b0d3b0ceef12964ab3c297701a09f03075db871113f7637a
7
- data.tar.gz: 2329dbb588b9ab44c60dab9cd7c0eb86e0a6139445a9b4441670f0bfdaf460314f5a129b5e2a23cfbeb32ee6899989aca09bcb57978ad833dfb3d6d6e1f1d7cf
6
+ metadata.gz: 3f6f8143b4eb39d6c0763467b5294597f5c351076f8453b213d670a055192439d9d676204928db75704584334619c9ec51a0c3ea6177bb88dfda098c5b9e2104
7
+ data.tar.gz: ab8c0af903bebc74660cdf32bb9b803e09759017a5faeefdd5a69ca0f1e190e4bdb0e44e0df36f8171fecbeb167c0f010f04221bdc74743145b72e88a28abb94
@@ -0,0 +1 @@
1
+ rdoc/gosu.rb - README.md COPYING
data/COPYING CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (C) 2001-2019 Julian Raschke, Jan Lücker and all contributors.
1
+ Copyright (C) 2001-2020 Julian Raschke, Jan Lücker and all contributors.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a
4
4
  copy of this software and associated documentation files (the "Software"),
@@ -0,0 +1,25 @@
1
+ #pragma once
2
+
3
+ #ifdef __cplusplus
4
+ extern "C" {
5
+ #endif
6
+
7
+ typedef struct Gosu_Channel Gosu_Channel;
8
+
9
+ Gosu_Channel* Gosu_Channel_create(Gosu_Channel* channel);
10
+ void Gosu_Channel_destroy(Gosu_Channel* channel);
11
+
12
+ void Gosu_Channel_play(Gosu_Channel *channel);
13
+ bool Gosu_Channel_playing(Gosu_Channel *channel);
14
+ void Gosu_Channel_pause(Gosu_Channel *channel);
15
+ bool Gosu_Channel_paused(Gosu_Channel *channel);
16
+ void Gosu_Channel_resume(Gosu_Channel *channel);
17
+ void Gosu_Channel_stop(Gosu_Channel *channel);
18
+
19
+ void Gosu_Channel_set_volume(Gosu_Channel *channel, double volume);
20
+ void Gosu_Channel_set_speed(Gosu_Channel *channel, double speed);
21
+ void Gosu_Channel_set_pan(Gosu_Channel *channel, double pan);
22
+
23
+ #ifdef __cplusplus
24
+ }
25
+ #endif
@@ -0,0 +1,38 @@
1
+ #pragma once
2
+
3
+ #ifdef __cplusplus
4
+ extern "C" {
5
+ #endif
6
+
7
+ typedef unsigned char Gosu_Color_Channel;
8
+
9
+ unsigned Gosu_Color_create(unsigned argb);
10
+ unsigned Gosu_Color_create_argb(Gosu_Color_Channel a, Gosu_Color_Channel r, Gosu_Color_Channel g, Gosu_Color_Channel b);
11
+ unsigned Gosu_Color_create_from_hsv(double h, double s, double v);
12
+ unsigned Gosu_Color_create_from_ahsv(Gosu_Color_Channel alpha, double h, double s, double v);
13
+
14
+ Gosu_Color_Channel Gosu_Color_alpha(unsigned color);
15
+ Gosu_Color_Channel Gosu_Color_red(unsigned color);
16
+ Gosu_Color_Channel Gosu_Color_green(unsigned color);
17
+ Gosu_Color_Channel Gosu_Color_blue(unsigned color);
18
+ unsigned Gosu_Color_set_alpha(unsigned color, Gosu_Color_Channel value);
19
+ unsigned Gosu_Color_set_red(unsigned color, Gosu_Color_Channel value);
20
+ unsigned Gosu_Color_set_green(unsigned color, Gosu_Color_Channel value);
21
+ unsigned Gosu_Color_set_blue(unsigned color, Gosu_Color_Channel value);
22
+
23
+ double Gosu_Color_hue(unsigned color);
24
+ double Gosu_Color_saturation(unsigned color);
25
+ double Gosu_Color_value(unsigned color);
26
+ unsigned Gosu_Color_set_hue(unsigned color, double value);
27
+ unsigned Gosu_Color_set_saturation(unsigned color, double value);
28
+ unsigned Gosu_Color_set_value(unsigned color, double value);
29
+
30
+ unsigned Gosu_Color_argb(unsigned color);
31
+ unsigned Gosu_Color_bgr(unsigned color);
32
+ unsigned Gosu_Color_abgr(unsigned color);
33
+
34
+ unsigned Gosu_Color_gl(unsigned color);
35
+
36
+ #ifdef __cplusplus
37
+ }
38
+ #endif
@@ -0,0 +1,36 @@
1
+ #pragma once
2
+
3
+ #ifdef __cplusplus
4
+ extern "C" {
5
+ #endif
6
+
7
+ typedef struct Gosu_Font Gosu_Font;
8
+
9
+ Gosu_Font* Gosu_Font_create(int height, const char* name, unsigned flags);
10
+
11
+ const char *Gosu_Font_name(Gosu_Font* font);
12
+ int Gosu_Font_height(Gosu_Font* font);
13
+ unsigned Gosu_Font_flags(Gosu_Font* font);
14
+
15
+ double Gosu_Font_text_width(Gosu_Font* font, const char* text);
16
+ double Gosu_Font_markup_width(Gosu_Font* font, const char* text);
17
+
18
+ void Gosu_Font_draw_text(Gosu_Font* font, const char* text, double x, double y, double z,
19
+ double scale_x, double scale_y, unsigned c, unsigned mode);
20
+ void Gosu_Font_draw_markup(Gosu_Font* font, const char* text, double x, double y, double z,
21
+ double scale_x, double scale_y, unsigned c, unsigned mode);
22
+
23
+ void Gosu_Font_draw_text_rel(Gosu_Font* font, const char* text, double x, double y, double z,
24
+ double rel_x, double rel_y, double scale_x, double scale_y,
25
+ unsigned c, unsigned mode);
26
+ void Gosu_Font_draw_markup_rel(Gosu_Font* font, const char* text, double x, double y, double z,
27
+ double rel_x, double rel_y, double scale_x, double scale_y,
28
+ unsigned c, unsigned mode);
29
+
30
+ void Gosu_Font_set_image(Gosu_Font* font, const char* codepoint, unsigned font_flags, Gosu_Image* image);
31
+
32
+ void Gosu_Font_destroy(Gosu_Font* font);
33
+
34
+ #ifdef __cplusplus
35
+ }
36
+ #endif
@@ -0,0 +1,79 @@
1
+ #pragma once
2
+
3
+ #ifdef __cplusplus
4
+ extern "C" {
5
+ #endif
6
+
7
+ #include <Gosu/Window.h>
8
+ #include <Gosu/Image.h>
9
+ #include <Gosu/Font.h>
10
+ #include <Gosu/Color.h>
11
+ #include <Gosu/TextInput.h>
12
+ #include <Gosu/Sample.h>
13
+ #include <Gosu/Song.h>
14
+ #include <Gosu/Channel.h>
15
+
16
+ // Graphics operations
17
+ void Gosu_gl_z(double z, void function(void *data), void* data);
18
+ void Gosu_gl(void function(void *data), void* data);
19
+ void Gosu_flush();
20
+ Gosu_Image* Gosu_render(int width, int height, void function(void *data), void* data, unsigned image_flags);
21
+ Gosu_Image* Gosu_record(int width, int height, void function(void *data), void* data);
22
+ void Gosu_clip_to(double x, double y, double width, double height, void function(void *data), void* data);
23
+
24
+ // Transformations
25
+ void Gosu_transform(double m0, double m1, double m2, double m3, double m4, double m5, double m6,
26
+ double m7, double m8, double m9, double m10, double m11, double m12, double m13,
27
+ double m14, double m15, void function(void *data), void* data);
28
+ void Gosu_translate(double x, double y, void function(void *data), void* data);
29
+ void Gosu_scale(double scale_x, double scale_y, double around_x, double around_y, void function(void *data), void* data);
30
+ void Gosu_rotate(double angle, double around_x, double around_y, void function(void *data), void* data);
31
+
32
+ void Gosu_clip_to(double x, double y, double width, double height, void function(void *data), void* data);
33
+
34
+ // Rendering
35
+ void Gosu_draw_line(double x1, double y1, unsigned c1,
36
+ double x2, double y2, unsigned c2,
37
+ double z, unsigned mode);
38
+ void Gosu_draw_triangle(double x1, double y1, unsigned c1,
39
+ double x2, double y2, unsigned c2,
40
+ double x3, double y3, unsigned c3,
41
+ double z, unsigned mode);
42
+ void Gosu_draw_rect(double x, double y, double width, double height, unsigned c, double z, unsigned mode);
43
+ void Gosu_draw_quad(double x1, double y1, unsigned c1,
44
+ double x2, double y2, unsigned c2,
45
+ double x3, double y3, unsigned c3,
46
+ double x4, double y4, unsigned c4,
47
+ double z, unsigned mode);
48
+
49
+ // Math functions
50
+ double Gosu_distance(double x1, double y1, double x2, double y2);
51
+
52
+ double Gosu_angle(double from_x, double from_y, double to_x, double to_y);
53
+ double Gosu_angle_diff(double from, double to);
54
+
55
+ double Gosu_offset_x(double angle, double radius);
56
+ double Gosu_offset_y(double angle, double radius);
57
+
58
+ double Gosu_random(double min, double max);
59
+
60
+ // Window/Screen information
61
+ unsigned Gosu_available_width(Gosu_Window* window);
62
+ unsigned Gosu_available_height(Gosu_Window* window);
63
+ unsigned Gosu_screen_width(Gosu_Window* window);
64
+ unsigned Gosu_screen_height(Gosu_Window* window);
65
+
66
+ // Button querying
67
+ int Gosu_button_down(int id);
68
+ const char* Gosu_button_id_to_char(int id);
69
+ unsigned Gosu_button_char_to_id(const char* character);
70
+
71
+ // Misc
72
+ int Gosu_fps();
73
+ const char* Gosu_language();
74
+ long Gosu_milliseconds();
75
+ const char* Gosu_default_font_name();
76
+
77
+ #ifdef __cplusplus
78
+ }
79
+ #endif
@@ -0,0 +1,54 @@
1
+ #pragma once
2
+
3
+ #ifdef __cplusplus
4
+ extern "C" {
5
+ #endif
6
+
7
+ typedef struct Gosu_Image Gosu_Image;
8
+
9
+ typedef struct Gosu_GLTexInfo {
10
+ int tex_name;
11
+ double left, right, top, bottom;
12
+ } Gosu_GLTexInfo;
13
+
14
+ // Constructor
15
+ Gosu_Image* Gosu_Image_create(const char *filename, unsigned image_flags);
16
+ Gosu_Image *Gosu_Image_create_from_blob(unsigned char *blob, int byte_count, int width, int height, unsigned image_flags); // support for RMagick blob objects
17
+ Gosu_Image *Gosu_Image_create_from_markup(const char *markup, const char *font, double font_height,
18
+ int width, double spacing, unsigned align, unsigned font_flags, unsigned image_flags);
19
+ Gosu_Image* Gosu_Image_create_from_text(const char *text, const char *font, double font_height,
20
+ int width, double spacing, unsigned align, unsigned font_flags, unsigned image_flags);
21
+ Gosu_Image* Gosu_Image_create_from_subimage(Gosu_Image *source, int left, int top, int width, int height);
22
+
23
+ void Gosu_Image_create_from_tiles(const char *source, int tile_width, int tile_height, void function(void* data, Gosu_Image* image), void *data, unsigned image_flags);
24
+ void Gosu_Image_create_tiles_from_image(Gosu_Image *image, int tile_width, int tile_height, void function(void *data, Gosu_Image *image), void *data, unsigned image_flags);
25
+
26
+ // Destructor
27
+ void Gosu_Image_destroy(Gosu_Image *image);
28
+
29
+ // Image properties
30
+ unsigned Gosu_Image_width(Gosu_Image *image);
31
+ unsigned Gosu_Image_height(Gosu_Image *image);
32
+
33
+ // Rendering
34
+ void Gosu_Image_draw(Gosu_Image *image, double x, double y, double z,
35
+ double scale_x, double scale_y, unsigned color, unsigned mode);
36
+ void Gosu_Image_draw_rot(Gosu_Image *image, double x, double y, double z,
37
+ double angle, double center_x, double center_y,
38
+ double scale_x, double scale_y, unsigned color, unsigned mode);
39
+ void Gosu_Image_draw_as_quad(Gosu_Image *image, double x1, double y1, unsigned color1,
40
+ double x2, double y2, unsigned color2,
41
+ double x3, double y3, unsigned color3,
42
+ double x4, double y4, unsigned color4,
43
+ double z, unsigned mode);
44
+
45
+ // Operations
46
+ void Gosu_Image_insert(Gosu_Image *image, Gosu_Image *source, int x, int y);
47
+ void Gosu_Image_save(Gosu_Image *image, const char *filename);
48
+ unsigned char* Gosu_Image_to_blob(Gosu_Image *image);
49
+ Gosu_GLTexInfo* Gosu_Image_gl_tex_info_create(Gosu_Image *image);
50
+ void Gosu_Image_gl_tex_info_destroy(Gosu_GLTexInfo *tex_info);
51
+
52
+ #ifdef __cplusplus
53
+ }
54
+ #endif
@@ -0,0 +1,19 @@
1
+ #pragma once
2
+
3
+ #include <Gosu/Channel.h>
4
+
5
+ #ifdef __cplusplus
6
+ extern "C" {
7
+ #endif
8
+
9
+ typedef struct Gosu_Sample Gosu_Sample;
10
+
11
+ Gosu_Sample* Gosu_Sample_create(const char* filename);
12
+ void Gosu_Sample_destroy(Gosu_Sample* sample);
13
+
14
+ Gosu_Channel* Gosu_Sample_play(Gosu_Sample *sample, double volume, double speed, bool looping);
15
+ Gosu_Channel* Gosu_Sample_play_pan(Gosu_Sample *sample, double pan, double volume, double speed, bool looping);
16
+
17
+ #ifdef __cplusplus
18
+ }
19
+ #endif
@@ -0,0 +1,24 @@
1
+ #pragma once
2
+
3
+ #ifdef __cplusplus
4
+ extern "C" {
5
+ #endif
6
+
7
+ typedef struct Gosu_Song Gosu_Song;
8
+
9
+ Gosu_Song* Gosu_Song_create(const char* filename);
10
+ void Gosu_Song_destroy(Gosu_Song* song);
11
+
12
+ void Gosu_Song_pause(Gosu_Song* song);
13
+ bool Gosu_Song_paused(Gosu_Song* song);
14
+ void Gosu_Song_play(Gosu_Song* song, bool looping);
15
+ bool Gosu_Song_playing(Gosu_Song* song);
16
+ void Gosu_Song_stop(Gosu_Song* song);
17
+ double Gosu_Song_volume(Gosu_Song* song);
18
+ void Gosu_Song_set_volume(Gosu_Song* song, double volume);
19
+
20
+ Gosu_Song* Gosu_Song_current_song();
21
+
22
+ #ifdef __cplusplus
23
+ }
24
+ #endif
@@ -0,0 +1,30 @@
1
+ #pragma once
2
+
3
+ #ifdef __cplusplus
4
+ extern "C" {
5
+ #endif
6
+
7
+ typedef struct Gosu_TextInput Gosu_TextInput;
8
+
9
+ Gosu_TextInput* Gosu_TextInput_create();
10
+
11
+ const char* Gosu_TextInput_text(Gosu_TextInput* text_input);
12
+ void Gosu_TextInput_set_text(Gosu_TextInput* text_input, const char* text);
13
+
14
+ unsigned Gosu_TextInput_caret_pos(Gosu_TextInput* text_input);
15
+ void Gosu_TextInput_set_caret_pos(Gosu_TextInput* text_input, unsigned pos);
16
+
17
+ unsigned Gosu_TextInput_selection_start(Gosu_TextInput* text_input);
18
+ void Gosu_TextInput_set_selection_start(Gosu_TextInput* text_input, unsigned pos);
19
+
20
+ void Gosu_TextInput_set_filter(Gosu_TextInput *text_input, void function(void* data, const char* text), void* data);
21
+ void Gosu_TextInput_set_filter_result(Gosu_TextInput *text_input, const char* result);
22
+ void Gosu_TextInput_insert_text(Gosu_TextInput *text_input, const char* text);
23
+ void Gosu_TextInput_delete_backward(Gosu_TextInput *text_input);
24
+ void Gosu_TextInput_delete_forward(Gosu_TextInput *text_input);
25
+
26
+ void Gosu_TextInput_destroy(Gosu_TextInput* text_input);
27
+
28
+ #ifdef __cplusplus
29
+ }
30
+ #endif
@@ -4,7 +4,7 @@
4
4
 
5
5
  #define GOSU_MAJOR_VERSION 0
6
6
  #define GOSU_MINOR_VERSION 15
7
- #define GOSU_POINT_VERSION 1
7
+ #define GOSU_POINT_VERSION 2
8
8
 
9
9
  namespace Gosu
10
10
  {
@@ -0,0 +1,61 @@
1
+ #pragma once
2
+ #include <stdbool.h>
3
+ #include "TextInput.h"
4
+
5
+ #ifdef __cplusplus
6
+ extern "C" {
7
+ #endif
8
+
9
+ typedef struct Gosu_Window Gosu_Window;
10
+
11
+ // Constructor
12
+ Gosu_Window* Gosu_Window_create(int width, int height, bool fullscreen, double update_interval, bool resizable);
13
+
14
+ // callbacks
15
+ void Gosu_Window_set_update(Gosu_Window *window, void function(void *data), void* data);
16
+ void Gosu_Window_set_draw(Gosu_Window *window, void function(void *data), void* data);
17
+ void Gosu_Window_set_button_down(Gosu_Window *window, void function(void *data, unsigned btn), void* data);
18
+ void Gosu_Window_set_button_up(Gosu_Window *window, void function(void *data, unsigned btn), void* data);
19
+ void Gosu_Window_set_drop(Gosu_Window *window, void function(void *data, const char *filename), void* data);
20
+ void Gosu_Window_set_needs_redraw(Gosu_Window *window, bool function(void *data), void* data);
21
+ void Gosu_Window_set_needs_cursor(Gosu_Window *window, bool function(void *data), void* data);
22
+ void Gosu_Window_set_close(Gosu_Window *window, void function(void *data), void* data);
23
+
24
+ void Gosu_Window_default_button_down(Gosu_Window* window, unsigned btn);
25
+
26
+ // Properties
27
+ int Gosu_Window_width(Gosu_Window* window);
28
+ int Gosu_Window_height(Gosu_Window* window);
29
+ bool Gosu_Window_is_fullscreen(Gosu_Window* window);
30
+ bool Gosu_Window_is_resizable(Gosu_Window* window);
31
+ double Gosu_Window_update_interval(Gosu_Window* window);
32
+ const char* Gosu_Window_caption(Gosu_Window* window);
33
+
34
+ Gosu_TextInput* Gosu_Window_text_input(Gosu_Window *window);
35
+ double Gosu_Window_mouse_x(Gosu_Window* window);
36
+ double Gosu_Window_mouse_y(Gosu_Window* window);
37
+ int Gosu_Window_is_button_down(Gosu_Window* window, unsigned btn);
38
+
39
+ // Setters
40
+ void Gosu_Window_set_text_input(Gosu_Window *window, Gosu_TextInput *text_input);
41
+ void Gosu_Window_set_caption(Gosu_Window* window, const char* caption);
42
+ void Gosu_Window_set_update_interval(Gosu_Window* window, double update_interval);
43
+ void Gosu_Window_set_mouse_x(Gosu_Window* window, double width);
44
+ void Gosu_Window_set_mouse_y(Gosu_Window* window, double height);
45
+ void Gosu_Window_set_width(Gosu_Window* window, int width);
46
+ void Gosu_Window_set_height(Gosu_Window* window, int height);
47
+
48
+ void Gosu_Window_resize(Gosu_Window* window, int width, int height, bool fullscreen);
49
+
50
+ // Main Loop
51
+ void Gosu_Window_show(Gosu_Window* window);
52
+ void Gosu_Window_close_immediately(Gosu_Window* window);
53
+ bool Gosu_Window_tick(Gosu_Window* window);
54
+
55
+ // Destructor
56
+ void Gosu_Window_destroy(Gosu_Window* window);
57
+
58
+
59
+ #ifdef __cplusplus
60
+ }
61
+ #endif
@@ -0,0 +1,50 @@
1
+ #include <Gosu/Audio.hpp>
2
+ #include <Gosu/Channel.h>
3
+
4
+ extern "C" {
5
+
6
+ Gosu_Channel *Gosu_Channel_create(Gosu_Channel *channel)
7
+ {
8
+ return channel;
9
+ }
10
+
11
+ bool Gosu_Channel_playing(Gosu_Channel *channel)
12
+ {
13
+ return reinterpret_cast<Gosu::Channel *>(channel)->playing();
14
+ }
15
+ void Gosu_Channel_pause(Gosu_Channel *channel)
16
+ {
17
+ reinterpret_cast<Gosu::Channel *>(channel)->pause();
18
+ }
19
+ bool Gosu_Channel_paused(Gosu_Channel *channel)
20
+ {
21
+ return reinterpret_cast<Gosu::Channel *>(channel)->paused();
22
+ }
23
+ void Gosu_Channel_resume(Gosu_Channel *channel)
24
+ {
25
+ reinterpret_cast<Gosu::Channel *>(channel)->resume();
26
+ }
27
+ void Gosu_Channel_stop(Gosu_Channel *channel)
28
+ {
29
+ reinterpret_cast<Gosu::Channel *>(channel)->stop();
30
+ }
31
+
32
+ void Gosu_Channel_set_volume(Gosu_Channel *channel, double volume)
33
+ {
34
+ reinterpret_cast<Gosu::Channel *>(channel)->set_volume(volume);
35
+ }
36
+ void Gosu_Channel_set_speed(Gosu_Channel *channel, double speed)
37
+ {
38
+ reinterpret_cast<Gosu::Channel *>(channel)->set_speed(speed);
39
+ }
40
+ void Gosu_Channel_set_pan(Gosu_Channel *channel, double pan)
41
+ {
42
+ reinterpret_cast<Gosu::Channel *>(channel)->set_pan(pan);
43
+ }
44
+
45
+ void Gosu_Channel_destroy(Gosu_Channel *channel)
46
+ {
47
+ delete (reinterpret_cast<Gosu::Channel *>(channel));
48
+ }
49
+
50
+ }