#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "paint_engine_ffi.h"
struct RUPaintDeviceFuncs;
struct RUPaintDevice;
typedef struct RUPaintDeviceFuncs {
bool (*painting_active)(struct RUBase* self_c);
struct RUPaintEngine (*paint_engine)(struct RUBase* self_c);
int (*width)(struct RUBase* self_c);
int (*height)(struct RUBase* self_c);
int (*logical_dpi_x)(struct RUBase* self_c);
int (*logical_dpi_y)(struct RUBase* self_c);
int (*physical_dpi_x)(struct RUBase* self_c);
int (*physical_dpi_y)(struct RUBase* self_c);
int (*device_pixel_ratio)(struct RUBase* self_c);
float (*device_pixel_ratio_f)(struct RUBase* self_c);
int (*color_count)(struct RUBase* self_c);
int (*depth)(struct RUBase* self_c);
} RUPaintDeviceFuncs;
typedef struct RUPaintDeviceAllFuncs {
struct RUPaintDeviceFuncs* paint_device_funcs;
} RUPaintDeviceAllFuncs;
typedef struct RUPaintDevice {
RUBase* qt_data;
RUBase* host_data;
struct RUPaintDeviceAllFuncs* all_funcs;
} RUPaintDevice;
extern RUPaintDeviceFuncs s_paint_device_funcs;
extern RUPaintDeviceAllFuncs s_paint_device_all_funcs;
#ifdef __cplusplus
}
#endif