123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- #ifndef scegra_H_INCLUDED
- #define scegra_H_INCLUDED
- #include "eruta.h"
- typedef struct Scegra_ Scegra;
- typedef struct ScegraNode_ ScegraNode;
- typedef struct ScegraStyle_ ScegraStyle;
- typedef struct ScegraPoints_ ScegraPoints;
- typedef void ScegraDraw (ScegraNode * node);
- typedef void ScegraUpdate(ScegraNode * node, double dt);
- typedef void ScegraDone (ScegraNode * node);
- #define SCEGRA_VERTEX_MAX 32
- /* A very simple scene graph, mainly for drawing the UI that will be managed from
- * the scripting side of things. Only one "global" scene graph is supported.
- */
- void scegra_init();
- void scegra_done();
- void scegra_update(double dt);
- void scegra_draw();
- /* Struct: ScegraStyle
- * Describes the style of a Scene graph node.
- */
- struct ScegraStyle_ {
- ALLEGRO_COLOR color;
- ALLEGRO_COLOR background_color;
- ALLEGRO_COLOR border_color;
- /* This is a store_xxx id of the background bitmap to show or negative if none. */
- int background_image_id;
- /* Border thickness, 0 or negative if none. */
- float border_thickness;
- /* This is a store_xxx id of the font to use or negative if none. */
- int font_id;
- ALLEGRO_LINE_JOIN line_join_style;
- float line_miter_limit;
- /* Flags to use when drawing text. */
- int text_flags;
- /* Flags to use when drawing images. */
- int image_flags;
- /* Margin between box and contents. */
- float margin;
- };
- ScegraStyle * scegrastyle_initempty(ScegraStyle * self);
- int scegra_make_box(int id, BeVec pos, BeVec siz, BeVec round, ScegraStyle style);
- int scegra_z(int index);
- int scegra_z_(int index, int z);
- int scegra_make_text(int id, BeVec pos, BeVec siz, const char * text, ScegraStyle style);
- int scegra_make_longtext(int id, BeVec pos, BeVec siz, char * text, ScegraStyle style);
- int scegra_make_image(int id, BeVec pos, BeVec siz,int image_id, ScegraStyle style);
- int scegra_visible_(int index, int is_visible);
- int scegra_image_id_(int index, int rindex);
- int scegra_font_id_(int index, int rindex);
- int scegra_background_image_id_(int index,int rindex);
- int scegra_speed_(int index, float x, float y);
- int scegra_size_(int index, float w, float h);
- int scegra_position_(int index, float x, float y);
- int scegra_border_thickness_(int index, float t);
- int scegra_background_color_(int index, int r, int g, int b, int a);
- int scegra_border_color_(int index, int r, int g, int b, int a);
- int scegra_color_(int index, int r, int g, int b, int a);
- int scegra_z_(int index, int z);
- int scegra_margin_(int index, float m);
- int scegra_speed(int index, float * x, float * y);
- int scegra_size(int index, float * w, float * h);
- int scegra_position(int index, float *x, float * y);
- int scegra_border_thickness(int index, float * t);
- int scegra_background_color(int index, int * r, int * g,int * b,int * a);
- int scegra_border_color(int index,int * r,int * g,int * b, int * a);
- int scegra_color(int index, int * r, int * g, int * b,int * a);
- int scegra_image_bitmap_size(int index, int * w, int * h);
- int scegra_margin(int index, float * m);
- int scegra_make_image(int id, BeVec pos, BeVec siz, int image_id, ScegraStyle style);
- int scegra_make_text(int id, BeVec pos, BeVec siz, const char *text, ScegraStyle style);
- int scegra_make_box(int id, BeVec pos, BeVec siz, BeVec round, ScegraStyle style);
- int scegra_disable_node(int index);
- int scegra_get_id(int index);
- ScegraNode *scegra_get_node(int index);
- int scegra_out_of_bounds(int index);
- void scegra_draw();
- void scegra_update(double dt);
- void scegra_init();
- int scegra_nodes_max();
- int scegra_id_in_use_p(int index);
- int scegra_get_free_id(int minimum);
- ScegraStyle *scegrastyle_initempty(ScegraStyle *self);
- void scegra_draw_image(ScegraNode *self);
- void scegra_draw_text(ScegraNode *self);
- void scegra_draw_longtext(ScegraNode *self);
- void scegra_draw_box(ScegraNode *self);
- void scegra_update_generic(ScegraNode *self, double dt);
- int scegra_angle_(int index, float angle);
- int scegra_make_box_style_from(int id, BeVec pos, BeVec siz, BeVec round, int sindex);
- int scegra_make_text_style_from(int id, BeVec pos, BeVec siz, const char * text, int sindex);
- int scegra_make_longtext_style_from(int id, BeVec pos, BeVec siz, const char * text, int sindex);
- int scegra_make_image_style_from(int id, BeVec pos, BeVec siz, int image_id, int sindex);
- int scegra_image_flags_(int index, int flags);
- int scegra_text_flags_(int index, int flags);
- int scegra_text_(int index, const char * text);
- int scegra_line_stop_(int index, int stop);
- int scegra_line_start_(int index, int start);
- int scegra_delay_(int index, double delay);
- int scegra_line_stop(int index);
- int scegra_line_start(int index);
- double scegra_delay(int index);
- int scegra_page_lines_(int index, int lines);
- int scegra_page_lines(int index);
- int scegra_paused_(int index, int paused);
- int scegra_paused(int index);
- int scegra_page(int index);
- int scegra_page_(int index, int page);
- int scegra_next_page(int index);
- int scegra_previous_page(int index);
- int scegra_last_page(int index);
- int scegra_at_end(int index);
- int scegra_show_system_mouse_cursor(int show);
- #endif
|