"*wireframe: False \n"
# define refresh_flipflop 0
+# define release_flipflop 0
# include "xlockmore.h"
#else
#ifdef USE_MODULES
ModStruct flipflop_description =
- {"flipflop", "init_flipflop", "draw_flipflop", "release_flipflop",
+ {"flipflop", "init_flipflop", "draw_flipflop", NULL,
"draw_flipflop", "init_flipflop", NULL, &flipflop_opts,
1000, 1, 2, 1, 4, 1.0, "",
"Flipflop", 0, NULL};
static int randsheet_draw( randsheet *rs );
static void setup_lights(void);
static int drawBoard(Flipflopcreen *);
-static int display(Flipflopcreen *c);
+static int display(ModeInfo *mi);
static int draw_sheet(float *tex);
static int
-display(Flipflopcreen *c)
+display(ModeInfo *mi)
{
+ Flipflopcreen *c = &qs[MI_SCREEN(mi)];
GLfloat amb[] = { 0.8, 0.8, 0.8, 1.0 };
int polys = 0;
glClear(clearbits);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
-
glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.2);
glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.15/board_avg_size );
glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.15/board_avg_size );
if(textured)
glBindTexture(GL_TEXTURE_2D, c->texid);
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
polys = drawBoard(c);
if (!c->button_down_p) {
image_loaded_cb, c);
}
+static void free_flipflop(ModeInfo *mi);
+
ENTRYPOINT void
init_flipflop(ModeInfo *mi)
{
screen = MI_SCREEN(mi);
wire = MI_IS_WIREFRAME(mi);
- if(!qs &&
- !(qs = (Flipflopcreen *) calloc(MI_NUM_SCREENS(mi), sizeof(Flipflopcreen))))
- return;
+ MI_INIT(mi, qs, free_flipflop);
c = &qs[screen];
c->window = MI_WINDOW(mi);
glXMakeCurrent(disp, w, *(c->glx_context));
- mi->polygon_count = display(c);
+ mi->polygon_count = display(mi);
if(mi->fps_p){
do_fps(mi);
}
-ENTRYPOINT void
-release_flipflop(ModeInfo *mi)
+static void
+free_flipflop(ModeInfo *mi)
{
- if(qs) {
- int screen;
-
- for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++)
- {
- Flipflopcreen *c = &qs[MI_SCREEN(mi)];
- if (c->glx_context)
- c->glx_context = 0;
- if (c->sheet) {
- randsheet_free(c->sheet);
- free (c->sheet);
- c->sheet = 0;
- }
- }
- free(qs);
- qs = 0;
+ Flipflopcreen *c = &qs[MI_SCREEN(mi)];
+ if (c->sheet) {
+ randsheet_free(c->sheet);
+ free (c->sheet);
}
-
- FreeAllGL(mi);
}
/*** ADDED RANDSHEET FUNCTIONS ***/