summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/drivers/PicoSDL/Fl_PicoSDL_Screen_Driver.cxx6
-rw-r--r--src/drivers/PicoSDL/Fl_PicoSDL_Window_Driver.H1
-rw-r--r--src/drivers/PicoSDL/Fl_PicoSDL_Window_Driver.cxx6
3 files changed, 9 insertions, 4 deletions
diff --git a/src/drivers/PicoSDL/Fl_PicoSDL_Screen_Driver.cxx b/src/drivers/PicoSDL/Fl_PicoSDL_Screen_Driver.cxx
index b43e0c191..2645519cb 100644
--- a/src/drivers/PicoSDL/Fl_PicoSDL_Screen_Driver.cxx
+++ b/src/drivers/PicoSDL/Fl_PicoSDL_Screen_Driver.cxx
@@ -112,9 +112,9 @@ double Fl_PicoSDL_Screen_Driver::wait(double time_to_wait)
Fl::e_y = e.motion.y;
Fl::e_x_root = e.motion.x + window->x();
Fl::e_y_root = e.motion.y + window->y();
- if (e.motion.state & SDL_BUTTON_LMASK) Fl::e_state |= FL_BUTTON1; else Fl::e_state &= ~FL_BUTTON1; break;
- if (e.motion.state & SDL_BUTTON_MMASK) Fl::e_state |= FL_BUTTON2; else Fl::e_state &= ~FL_BUTTON2; break;
- if (e.motion.state & SDL_BUTTON_RMASK) Fl::e_state |= FL_BUTTON3; else Fl::e_state &= ~FL_BUTTON3; break;
+ if (e.motion.state & SDL_BUTTON_LMASK) Fl::e_state |= FL_BUTTON1; else Fl::e_state &= ~FL_BUTTON1;
+ if (e.motion.state & SDL_BUTTON_MMASK) Fl::e_state |= FL_BUTTON2; else Fl::e_state &= ~FL_BUTTON2;
+ if (e.motion.state & SDL_BUTTON_RMASK) Fl::e_state |= FL_BUTTON3; else Fl::e_state &= ~FL_BUTTON3;
if ((e.motion.state & (SDL_BUTTON_LMASK|SDL_BUTTON_MMASK|SDL_BUTTON_RMASK)) == 0 )
Fl::handle(FL_MOVE, window);
else
diff --git a/src/drivers/PicoSDL/Fl_PicoSDL_Window_Driver.H b/src/drivers/PicoSDL/Fl_PicoSDL_Window_Driver.H
index b525983ad..87b4b0b1d 100644
--- a/src/drivers/PicoSDL/Fl_PicoSDL_Window_Driver.H
+++ b/src/drivers/PicoSDL/Fl_PicoSDL_Window_Driver.H
@@ -35,6 +35,7 @@
class FL_EXPORT Fl_PicoSDL_Window_Driver : public Fl_Pico_Window_Driver
{
SDL_Window *pNativeWindow;
+ SDL_Texture *pNativeTexture;
public:
Fl_PicoSDL_Window_Driver(Fl_Window *win);
virtual ~Fl_PicoSDL_Window_Driver();
diff --git a/src/drivers/PicoSDL/Fl_PicoSDL_Window_Driver.cxx b/src/drivers/PicoSDL/Fl_PicoSDL_Window_Driver.cxx
index 7b165271f..78e3683d9 100644
--- a/src/drivers/PicoSDL/Fl_PicoSDL_Window_Driver.cxx
+++ b/src/drivers/PicoSDL/Fl_PicoSDL_Window_Driver.cxx
@@ -76,6 +76,7 @@ Fl_X *Fl_PicoSDL_Window_Driver::makeWindow()
pNativeWindow = SDL_CreateWindow(pWindow->label(), pWindow->x(), pWindow->y(), pWindow->w(), pWindow->h(), 0);
}
x->xid = SDL_CreateRenderer(pNativeWindow, -1, SDL_RENDERER_ACCELERATED);
+ pNativeTexture = SDL_CreateTexture((SDL_Renderer*)x->xid, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_TARGET, w(), h());
x->next = Fl_X::first;
wait_for_expose_value = 0;
pWindow->i = x;
@@ -95,6 +96,9 @@ Fl_X *Fl_PicoSDL_Window_Driver::makeWindow()
void Fl_PicoSDL_Window_Driver::draw_end()
{
Fl_X *i = Fl_X::i(pWindow);
+ SDL_SetRenderTarget((SDL_Renderer*)pWindow->i->xid, 0L);
+ //SDL_RenderClear((SDL_Renderer*)i->xid);
+ SDL_RenderCopy((SDL_Renderer*)i->xid, pNativeTexture, 0L, 0L);
SDL_RenderPresent((SDL_Renderer*)i->xid);
}
@@ -102,6 +106,7 @@ void Fl_PicoSDL_Window_Driver::draw_end()
void Fl_PicoSDL_Window_Driver::make_current()
{
fl_window = pWindow->i->xid;
+ SDL_SetRenderTarget((SDL_Renderer*)pWindow->i->xid, pNativeTexture);
}
@@ -112,7 +117,6 @@ void Fl_PicoSDL_Window_Driver::show() {
}
-
//
// End of "$Id$".
// \ No newline at end of file