#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "color_ffi.h"
#include "image_ffi.h"
#include "pixmap_ffi.h"
struct RUBrushFuncs;
struct RUBrush;
typedef struct RUBrushFuncs {
void (*destroy)(struct RUBase* self);
void (*swap)(struct RUBase* self_c, struct RUBase* other);
uint32_t (*style)(struct RUBase* self_c);
void (*set_style)(struct RUBase* self_c, uint32_t arg0);
void (*set_transform)(struct RUBase* self_c, struct RUBase* arg0);
struct RUPixmap (*texture)(struct RUBase* self_c);
void (*set_texture)(struct RUBase* self_c, struct RUBase* pixmap);
struct RUImage (*texture_image)(struct RUBase* self_c);
void (*set_texture_image)(struct RUBase* self_c, struct RUBase* image);
struct RUColor (*color)(struct RUBase* self_c);
void (*set_color)(struct RUBase* self_c, struct RUBase* color);
void (*set_color_2)(struct RUBase* self_c, uint32_t color);
bool (*is_opaque)(struct RUBase* self_c);
bool (*is_detached)(struct RUBase* self_c);
} RUBrushFuncs;
typedef struct RUBrushAllFuncs {
struct RUBrushFuncs* brush_funcs;
} RUBrushAllFuncs;
typedef struct RUBrush {
RUBase* qt_data;
RUBase* host_data;
struct RUBrushAllFuncs* all_funcs;
} RUBrush;
extern RUBrushFuncs s_brush_funcs;
extern RUBrushAllFuncs s_brush_all_funcs;
#ifdef __cplusplus
}
#endif