nuclear@3: #include nuclear@2: #include nuclear@1: #include nuclear@2: #include nuclear@0: #include nuclear@0: #ifndef __APPLE__ nuclear@0: #include nuclear@0: #else nuclear@0: #include nuclear@0: #endif nuclear@0: #include "imtk.h" nuclear@7: #include "state.h" nuclear@13: #include "draw.h" nuclear@1: nuclear@13: void imtk_post_redisplay(void) nuclear@13: { nuclear@13: glutPostRedisplay(); nuclear@13: } nuclear@13: nuclear@0: void imtk_begin(void) nuclear@0: { nuclear@7: int width, height; nuclear@7: nuclear@20: glPushAttrib(GL_ENABLE_BIT | GL_COLOR_BUFFER_BIT | GL_TRANSFORM_BIT); nuclear@20: nuclear@20: glDisable(GL_DEPTH_TEST); nuclear@20: glDisable(GL_STENCIL_TEST); nuclear@20: glDisable(GL_ALPHA_TEST); nuclear@20: glDisable(GL_TEXTURE_1D); nuclear@20: glDisable(GL_TEXTURE_2D); nuclear@20: glDisable(GL_CULL_FACE); nuclear@20: glDisable(GL_SCISSOR_TEST); nuclear@20: glDisable(GL_LIGHTING); nuclear@20: glEnable(GL_BLEND); nuclear@20: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); nuclear@20: nuclear@20: nuclear@7: imtk_get_viewport(&width, &height); nuclear@7: nuclear@0: glMatrixMode(GL_PROJECTION); nuclear@0: glPushMatrix(); nuclear@0: glLoadIdentity(); nuclear@0: glTranslatef(-1, 1, 0); nuclear@7: glScalef(2.0 / width, -2.0 / height, 1.0); nuclear@2: nuclear@2: glMatrixMode(GL_MODELVIEW); nuclear@2: glPushMatrix(); nuclear@2: glLoadIdentity(); nuclear@0: } nuclear@0: nuclear@0: void imtk_end(void) nuclear@0: { nuclear@0: glMatrixMode(GL_PROJECTION); nuclear@0: glPopMatrix(); nuclear@2: glMatrixMode(GL_MODELVIEW); nuclear@2: glPopMatrix(); nuclear@20: nuclear@20: glPopAttrib(); nuclear@0: } nuclear@0: nuclear@13: void imtk_label(const char *str, int x, int y) nuclear@0: { nuclear@20: if(x == IMTK_AUTO || y == IMTK_AUTO) { nuclear@20: imtk_layout_get_pos(&x, &y); nuclear@20: } nuclear@20: nuclear@13: glColor4fv(imtk_get_color(IMTK_TEXT_COLOR)); nuclear@21: imtk_draw_string(x, y + 14, str); nuclear@20: imtk_layout_advance(imtk_string_size(str), 12); nuclear@0: }