|
commit facc13b24dc3456d9b6e85a36dcc279b0de12a47
Author: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
AuthorDate: Thu Jun 3 09:32:19 2021 +0200
Commit: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
CommitDate: Wed Sep 29 12:14:55 2021 +0200
Wayland platform: add Fl_Wayland_Graphics_Driver::buffer member variable.
src/drivers/Wayland/Fl_Wayland_Graphics_Driver.H | 1 +
src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx | 39 +++++++++++-----------
2 files changed, 21 insertions(+), 19 deletions(-)
diff --git src/drivers/Wayland/Fl_Wayland_Graphics_Driver.H src/drivers/Wayland/Fl_Wayland_Graphics_Driver.H
index a983e34..50ed739 100644
--- src/drivers/Wayland/Fl_Wayland_Graphics_Driver.H
+++ src/drivers/Wayland/Fl_Wayland_Graphics_Driver.H
@@ -43,6 +43,7 @@ struct wld_window;
class Fl_Wayland_Graphics_Driver : public Fl_Cairo_Graphics_Driver {
private:
+ struct buffer *buffer;
PangoLayout *dummy_pango_layout_; // used to measure text width before showing a window
void draw_cached_pattern_(Fl_Image *img, cairo_pattern_t *pat, int X, int Y, int W, int H, int cx, int cy);
public:
diff --git src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx
index 688a2fe..3be336c 100644
--- src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx
+++ src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx
@@ -189,6 +189,7 @@ void Fl_Wayland_Graphics_Driver::activate(struct buffer *buffer, int scale) {
g_object_ref(pango_layout_);
Fl_Graphics_Driver::font(-1, -1); // signal that no font is current yet
}
+ this->buffer = buffer;
cairo_restore(cairo_);
cairo_save(cairo_);
cairo_scale(cairo_, scale, scale);
@@ -415,7 +416,7 @@ void Fl_Wayland_Graphics_Driver::draw(const char* str, int n, float x, float y)
pango_layout_set_text(pango_layout_, str, n);
pango_cairo_show_layout(cairo_, pango_layout_);
cairo_restore(cairo_);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
@@ -687,7 +688,7 @@ void Fl_Wayland_Graphics_Driver::draw_cached_pattern_(Fl_Image *img, cairo_patte
cairo_pattern_set_matrix(pat, &matrix);
cairo_mask(cairo_, pat);
cairo_restore(cairo_);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
@@ -879,85 +880,85 @@ void Fl_Wayland_Graphics_Driver::uncache_pixmap(fl_uintptr_t p) {
void Fl_Wayland_Graphics_Driver::line(int x1, int y1, int x2, int y2) {
Fl_Cairo_Graphics_Driver::line(x1, y1, x2, y2);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::line(int x1, int y1, int x2, int y2, int x3, int y3) {
Fl_Cairo_Graphics_Driver::line(x1, y1, x2, y2, x3, y3);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::xyline(int x, int y, int x1) {
Fl_Cairo_Graphics_Driver::xyline(x, y, x1);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::xyline(int x, int y, int x1, int y2) {
Fl_Cairo_Graphics_Driver::xyline(x, y, x1, y2);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::xyline(int x, int y, int x1, int y2, int x3) {
Fl_Cairo_Graphics_Driver::xyline(x, y, x1, y2, x3);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::yxline(int x, int y, int y1) {
Fl_Cairo_Graphics_Driver::yxline(x, y, y1);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::yxline(int x, int y, int y1, int x2) {
Fl_Cairo_Graphics_Driver::yxline(x, y, y1, x2);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::yxline(int x, int y, int y1, int x2, int y3) {
Fl_Cairo_Graphics_Driver::yxline(x, y, y1, x2, y3);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::loop(int x0, int y0, int x1, int y1, int x2, int y2) {
Fl_Cairo_Graphics_Driver::loop(x0, y0, x1, y1, x2, y2);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::loop(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3) {
Fl_Cairo_Graphics_Driver::loop(x0, y0, x1, y1, x2, y2, x3, y3);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::rectf(int x, int y, int w, int h) {
Fl_Cairo_Graphics_Driver::rectf(x, y, w, h);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::rect(int x, int y, int w, int h) {
Fl_Cairo_Graphics_Driver::rect(x, y, w, h);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::polygon(int x0, int y0, int x1, int y1, int x2, int y2) {
Fl_Cairo_Graphics_Driver::polygon(x0, y0, x1, y1, x2, y2);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::polygon(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3) {
Fl_Cairo_Graphics_Driver::polygon(x0, y0, x1, y1, x2, y2, x3, y3);
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::end_line() {
Fl_Cairo_Graphics_Driver::end_line();
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::end_loop(){
Fl_Cairo_Graphics_Driver::end_loop();
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
void Fl_Wayland_Graphics_Driver::end_polygon() {
Fl_Cairo_Graphics_Driver::end_polygon();
- if (fl_window) fl_window->buffer->draw_buffer_needs_commit = true;
+ buffer->draw_buffer_needs_commit = true;
}
[ Direct Link to Message ] | |