You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
Using the C API provided by SkiaSharp's skia fork instead of using cairo significantly improves performance. The API is also closer to the android Canvas API, which makes the implementation more straightforward.
32 lines
711 B
C
32 lines
711 B
C
#ifndef SK_AREA_H
|
|
#define SK_AREA_H
|
|
|
|
#include "include/c/sk_canvas.h"
|
|
|
|
G_DECLARE_FINAL_TYPE(SKArea, sk_area, SK_AREA, WIDGET, GtkGLArea)
|
|
|
|
struct _SKArea
|
|
{
|
|
GtkGLArea parent_instance;
|
|
void (* draw_func)(SKArea *sk_area, sk_canvas_t *canvas, gpointer data);
|
|
gpointer draw_func_data;
|
|
|
|
const gr_glinterface_t *gl_interface;
|
|
gr_direct_context_t *gr_context;
|
|
sk_surface_t* surface;
|
|
sk_canvas_t* canvas;
|
|
gr_backendrendertarget_t *render_target;
|
|
int prev_width;
|
|
int prev_height;
|
|
};
|
|
|
|
struct _SKAreaClass
|
|
{
|
|
GtkGLAreaClass parent_class;
|
|
};
|
|
|
|
GtkWidget * sk_area_new(void);
|
|
void sk_area_set_draw_func(SKArea *sk_area, void (*draw_func)(SKArea *sk_area, sk_canvas_t *canvas, gpointer data), gpointer data);
|
|
|
|
#endif
|