diff options
Diffstat (limited to 'languages/cpp/app_templates/noatunvisual/plugin_impl.h')
-rw-r--r-- | languages/cpp/app_templates/noatunvisual/plugin_impl.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/languages/cpp/app_templates/noatunvisual/plugin_impl.h b/languages/cpp/app_templates/noatunvisual/plugin_impl.h new file mode 100644 index 00000000..2a7de7b1 --- /dev/null +++ b/languages/cpp/app_templates/noatunvisual/plugin_impl.h @@ -0,0 +1,77 @@ + +#ifndef %{APPNAMEUC}_IMPL_H +#define %{APPNAMEUC}_IMPL_H + +struct SDL_Surface; + +/** + * @short This class is used for painting and supports some effects. + * Note: This is used in Blurscope. Feel free to remove this and + * implement your own drawing routines! + */ +template<class Pixel> class Bitmap +{ +public: + int width, height, extra; + Pixel *data; + + Bitmap(int e=0) : extra(e), data(0) { } + ~Bitmap() { delete[] data; } + + inline void addPixel(int x, int y, int bright1, int bright2); + void addVertLine(int x, int y, int y2, int br1, int br2); + + void fadeStar(); + + void size(int w,int h) + { + delete[] data; + width = w; + height = h; + data = new Pixel[w*h+extra]; + clear(); + } + + void clear() + { + memset(data,0,sizeof(Pixel)*(width*height+extra)); + } +}; + +/** + * @short This class does: + * o set up view + * o drawing routines. + */ +class %{APPNAME}View +{ +public: + %{APPNAME}View(int in); + ~%{APPNAME}View(); + +protected: + /** Screen initialization with SDL. Note, that you can initialize OpenGL with SDL! */ + void startVideo(); + /** SDL event queue */ + void checkInput(); + /** Used in Blurscope. Feel free to implement your own drawing routines! */ + void setupPalette(double dummy=0.0); + + /** Draw everything. */ + void repaint(); + +private: + /** used for pipelining */ + int mFd; + + /** SDL screen surface */ + SDL_Surface *surface; + Bitmap<unsigned short> outputBmp; + + bool fullscreen; + int width; + int height; +}; + +#endif // %{APPNAMEUC}_IMPL_H + |