#include "screen.h"
#include "SDL_opengl.h"
+#include <fcntl.h> // for access(2)
+#include <unistd.h> // for access(2)
using namespace IPDF;
using namespace std;
m_last_mouse_y = evt.button.y;
if (m_mouse_handler)
{
- m_mouse_handler(evt.button.x, evt.button.y, evt.button.state, 0);
+ m_mouse_handler(evt.button.x, evt.button.y, evt.button.state?evt.button.button:0, 0);
}
break;
case SDL_MOUSEWHEEL:
filename[0] = (char)evt.key.keysym.sym;
ScreenShot(filename);
}
+ break;
}
default:
break;
unsigned char * pixels = new unsigned char[w*h*4];
if (pixels == NULL)
Fatal("Failed to allocate %d x %d x 4 = %d pixel array", w, h, w*h*4);
- glReadBuffer(GL_FRONT);
- glPixelStorei(GL_PACK_ALIGNMENT, 1);
+
for (int y = 0; y < h; ++y)
{
glReadPixels(0,h-y-1,w, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixels[y*w*4]);
*/
void Screen::RenderBMP(const char * filename) const
{
+ if (access(filename, R_OK) == -1)
+ {
+ Error("No such file \"%s\" - Nothing to render - You might have done this deliberately?", filename);
+ return;
+ }
SDL_Surface * bmp = SDL_LoadBMP(filename);
if (bmp == NULL)
Fatal("Failed to load BMP from %s - %s", filename, SDL_GetError());
glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);
glPopMatrix();
- glMatrixMode(GL_MODELVIEW);
+ glMatrixMode(GL_PROJECTION);
glPopMatrix();
}