コード例 #1
0
ファイル: Control.c プロジェクト: aghozlane/pymol
/*========================================================================*/
int ControlIdling(PyMOLGlobals * G)
{
  CControl *I = G->Control;
  return (I->sdofActive ||
          MoviePlaying(G) ||
          SettingGetGlobal_b(G, cSetting_rock) || SettingGet(G, cSetting_sculpting));
}
コード例 #2
0
ファイル: tinsel.cpp プロジェクト: havlenapetr/Scummvm
TinselEngine::~TinselEngine() {
	if (MoviePlaying())
		FinishBMV();

	AudioCD.stop();
	delete _sound;
	delete _midiMusic;
	delete _pcmMusic;
	delete _console;
	delete _driver;
	_screenSurface.free();
	FreeSaveScenes();
	FreeTextBuffer();
	FreeHandleTable();
	FreeActors();
	FreeObjectList();
	FreeGlobalProcesses();
	FreeGlobals();
	delete _scheduler;
}
コード例 #3
0
ファイル: tinsel.cpp プロジェクト: havlenapetr/Scummvm
void TinselEngine::NextGameCycle(void) {
	// Dim Music
	_pcmMusic->dimIteration();

	// Check for scene change
	ChangeScene(false);

	// Allow a user event for this schedule
	ResetEcount();

	// schedule process
	_scheduler->schedule();

	if (MoviePlaying())
		CopyMovieToScreen();
	else
		// redraw background
		DrawBackgnd();

	// Why waste resources on yet another process?
	FettleTimers();
}
コード例 #4
0
ファイル: Control.c プロジェクト: aghozlane/pymol
/*========================================================================*/
static void ControlDraw(Block * block)
{
  PyMOLGlobals *G = block->G;
  register CControl *I = G->Control;
  int x, y;
  int nButton = I->NButton;
  int but_num;
  float lightEdge[3] = { 0.65F, 0.65F, 0.65F };
  float darkEdge[3] = { 0.3F, 0.3F, 0.3F };
  float pushed[3] = { 0.8F, 0.8F, 0.8F };

  if(G->HaveGUI && G->ValidContext) {

    int control_width = I->Block->rect.right - (I->Block->rect.left + cControlLeftMargin);

#ifdef PURE_OPENGL_ES_2      
      /* TODO */
#else
    glColor3fv(I->Block->BackColor);
#endif
    BlockFill(I->Block);
#ifdef PURE_OPENGL_ES_2      
      /* TODO */
#else
    glColor3fv(I->Block->TextColor);
#endif
    {
      int top, left, bottom, right;

      left = I->Block->rect.left + 1;
      bottom = I->Block->rect.bottom + 1;
      top = I->Block->rect.top - (cControlTopMargin - 1);
      right = left + 5;

      /* This draws the separator on the left side of the movie control buttons */
#ifdef PURE_OPENGL_ES_2
    /* TODO */
#else
#ifdef _PYMOL_GL_DRAWARRAYS
      {
	const GLint polyVerts[] = {
	  right, top,
	  right, bottom,
	  left, bottom,
	  
	  left, bottom,
	  left, top,
	  right, top,
	  
	  right, top - 1,
	  right, bottom,
	  left + 1, bottom,
	  
	  left + 1, bottom,
	  left + 1, top - 1,
	  right, top - 1,
	  
	  right - 1, top - 1,
	  right - 1, bottom + 1,
	  left + 1, bottom + 1,
	  
	  left + 1, bottom + 1,
	  left + 1, top - 1,
	  right - 1, top - 1,
	};
	
	const GLfloat colorVerts[] = {
	  0.8F, 0.8F, 0.8F, 1.f,
	  0.8F, 0.8F, 0.8F, 1.f,
	  0.8F, 0.8F, 0.8F, 1.f,
	  0.8F, 0.8F, 0.8F, 1.f,
	  0.8F, 0.8F, 0.8F, 1.f,
	  0.8F, 0.8F, 0.8F, 1.f,
	  
	  0.3F, 0.3F, 0.3F, 1.f,
	  0.3F, 0.3F, 0.3F, 1.f,
	  0.3F, 0.3F, 0.3F, 1.f,
	  0.3F, 0.3F, 0.3F, 1.f,
	  0.3F, 0.3F, 0.3F, 1.f,
	  0.3F, 0.3F, 0.3F, 1.f,
	  
	  I->ButtonColor[0], I->ButtonColor[1], I->ButtonColor[2], 1.f,
	  I->ButtonColor[0], I->ButtonColor[1], I->ButtonColor[2], 1.f,
	  I->ButtonColor[0], I->ButtonColor[1], I->ButtonColor[2], 1.f,
	  I->ButtonColor[0], I->ButtonColor[1], I->ButtonColor[2], 1.f,
	  I->ButtonColor[0], I->ButtonColor[1], I->ButtonColor[2], 1.f,
	  I->ButtonColor[0], I->ButtonColor[1], I->ButtonColor[2], 1.f
	};
	
	glEnableClientState(GL_VERTEX_ARRAY);
	glEnableClientState(GL_COLOR_ARRAY);
	glColorPointer(4, GL_FLOAT, 0, colorVerts);
	glVertexPointer(2, GL_INT, 0, polyVerts);
	glDrawArrays(GL_TRIANGLES, 0, 18);
	glDisableClientState(GL_VERTEX_ARRAY);
	glDisableClientState(GL_COLOR_ARRAY);
      }
#else
      glColor3f(0.8F, 0.8F, 0.8F);
      glBegin(GL_POLYGON);
      glVertex2i(right, top);
      glVertex2i(right, bottom);
      glVertex2i(left, bottom);
      glVertex2i(left, top);
      glEnd();

      glColor3f(0.3F, 0.3F, 0.3F);
      glBegin(GL_POLYGON);
      glVertex2i(right, top - 1);
      glVertex2i(right, bottom);
      glVertex2i(left + 1, bottom);
      glVertex2i(left + 1, top - 1);
      glEnd();

      glColor3fv(I->ButtonColor);

      glBegin(GL_POLYGON);
      glVertex2i(right - 1, top - 1);
      glVertex2i(right - 1, bottom + 1);
      glVertex2i(left + 1, bottom + 1);
      glVertex2i(left + 1, top - 1);
      glEnd();
#endif
#endif
    }

    y = I->Block->rect.top - cControlTopMargin;

    for(but_num = 0; but_num < nButton; but_num++) {
      int but_width;
      int but_left;
      int but_bottom;
      int but_height;

      but_left =
        I->Block->rect.left + cControlLeftMargin + (but_num * control_width) / nButton;
      but_width =
        (((but_num + 1) * control_width / nButton) -
         ((but_num) * control_width / nButton)) - 1;

      but_bottom = y - (cControlBoxSize - 1);
      but_height = cControlBoxSize;

      if((but_num == I->Active)) {
        draw_button(but_left, but_bottom,
                    but_width, but_height, lightEdge, darkEdge, pushed);
      } else if(((but_num == 6) && ((int) SettingGet(G, cSetting_seq_view))) ||
                ((but_num == 3) && (MoviePlaying(G))) ||
                ((but_num == 7) && (SettingGetGlobal_b(G, cSetting_rock))) ||
                ((but_num == 8) && (SettingGetGlobal_b(G, cSetting_full_screen)))) {
        draw_button(but_left, but_bottom,
                    but_width, but_height, lightEdge, darkEdge, I->ActiveColor);
      } else {
        draw_button(but_left, but_bottom,
                    but_width, but_height, lightEdge, darkEdge, I->ButtonColor);
      }

      if(control_width > 100) {
        x = but_left + (but_width - cControlBoxSize) / 2;

#ifdef PURE_OPENGL_ES_2      
      /* TODO */
#else
        glColor3fv(I->Block->TextColor);
#endif
        switch (but_num) {
        case 0:
#ifdef PURE_OPENGL_ES_2
    /* TODO */
#else
#ifdef _PYMOL_GL_DRAWARRAYS
	  {
	    const GLint polyVerts[] = {
	      x + (cControlBoxSize - 1) - cControlInnerMargin, y - cControlInnerMargin,
	      x + (cControlBoxSize - 1) - cControlInnerMargin, y - (cControlBoxSize - 1) + cControlInnerMargin,
	      x + cControlInnerMargin, y - (cControlBoxSize / 2)
	    };
	    glEnableClientState(GL_VERTEX_ARRAY);
	    glVertexPointer(2, GL_INT, 0, polyVerts);
	    glDrawArrays(GL_TRIANGLES, 0, 3);
	    glDisableClientState(GL_VERTEX_ARRAY);
	  }
	  {
	    const GLint lineVerts[] = {
	      x + cControlInnerMargin, y - cControlInnerMargin,
	      x + cControlInnerMargin, y - (cControlBoxSize - 1) + cControlInnerMargin
	    };
	    glEnableClientState(GL_VERTEX_ARRAY);
	    glVertexPointer(2, GL_INT, 0, lineVerts);
	    glDrawArrays(GL_LINES, 0, 2);
	    glDisableClientState(GL_VERTEX_ARRAY);
	  }
#else
          glBegin(GL_TRIANGLES);
          glVertex2i(x + (cControlBoxSize - 1) - cControlInnerMargin,
                     y - cControlInnerMargin);
          glVertex2i(x + (cControlBoxSize - 1) - cControlInnerMargin,
                     y - (cControlBoxSize - 1) + cControlInnerMargin);
          glVertex2i(x + cControlInnerMargin, y - (cControlBoxSize / 2));
          glEnd();
          glBegin(GL_LINES);
          glVertex2i(x + cControlInnerMargin, y - cControlInnerMargin);
          glVertex2i(x + cControlInnerMargin,
                     y - (cControlBoxSize - 1) + cControlInnerMargin);
          glEnd();
#endif
#endif
          break;

        case 1:
#ifdef PURE_OPENGL_ES_2
    /* TODO */
#else
#ifdef _PYMOL_GL_DRAWARRAYS
	  {
	    const GLint polyVerts[] = {
	      x + cControlBoxSize / 2 + 2, y - (cControlBoxSize / 2),
	      x + (cControlBoxSize - 1) - cControlInnerMargin, y - cControlInnerMargin,
	      x + (cControlBoxSize - 1) - cControlInnerMargin, y - (cControlBoxSize - 1) + cControlInnerMargin,
	      x + cControlInnerMargin, y - (cControlBoxSize / 2)
	    };
	    glEnableClientState(GL_VERTEX_ARRAY);
	    glVertexPointer(2, GL_INT, 0, polyVerts);
	    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
	    glDisableClientState(GL_VERTEX_ARRAY);
	  }
#else
          glBegin(GL_POLYGON);
          glVertex2i(x + cControlBoxSize / 2 + 2, y - (cControlBoxSize / 2));
          glVertex2i(x + (cControlBoxSize - 1) - cControlInnerMargin,
                     y - cControlInnerMargin);
          glVertex2i(x + cControlInnerMargin, y - (cControlBoxSize / 2));
          glVertex2i(x + (cControlBoxSize - 1) - cControlInnerMargin,
                     y - (cControlBoxSize - 1) + cControlInnerMargin);
          glEnd();
#endif
#endif
          break;
        case 2:
#ifdef PURE_OPENGL_ES_2
    /* TODO */
#else
#ifdef _PYMOL_GL_DRAWARRAYS
	  {
	    const GLint polyVerts[] = {
	      x + cControlInnerMargin, y - cControlInnerMargin,
	      x + cControlInnerMargin, y - (cControlBoxSize - 1) + cControlInnerMargin,
	      x + (cControlBoxSize - 1) - cControlInnerMargin, y - cControlInnerMargin,
	      x + (cControlBoxSize - 1) - cControlInnerMargin, y - (cControlBoxSize - 1) + cControlInnerMargin
	    };
	    glEnableClientState(GL_VERTEX_ARRAY);
	    glVertexPointer(2, GL_INT, 0, polyVerts);
	    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
	    glDisableClientState(GL_VERTEX_ARRAY);
	  }
#else
          glBegin(GL_POLYGON);
          glVertex2i(x + cControlInnerMargin, y - cControlInnerMargin);
          glVertex2i(x + cControlInnerMargin,
                     y - (cControlBoxSize - 1) + cControlInnerMargin);
          glVertex2i(x + (cControlBoxSize - 1) - cControlInnerMargin,
                     y - (cControlBoxSize - 1) + cControlInnerMargin);
          glVertex2i(x + (cControlBoxSize - 1) - cControlInnerMargin,
                     y - cControlInnerMargin);
          glEnd();
#endif
#endif
          break;

        case 3:
#ifdef PURE_OPENGL_ES_2
    /* TODO */
#else
#ifdef _PYMOL_GL_DRAWARRAYS
	  {
	    const GLint polyVerts[] = {
	      x + cControlInnerMargin, y - cControlInnerMargin + 1,
	      x + cControlInnerMargin, y - (cControlBoxSize - 1) + cControlInnerMargin - 1,
	      x + (cControlBoxSize) - cControlInnerMargin, y - (cControlBoxSize / 2)
	    };
	    glEnableClientState(GL_VERTEX_ARRAY);
	    glVertexPointer(2, GL_INT, 0, polyVerts);
	    glDrawArrays(GL_TRIANGLES, 0, 3);
	    glDisableClientState(GL_VERTEX_ARRAY);
	  }
#else
          glBegin(GL_TRIANGLES);
          glVertex2i(x + cControlInnerMargin, y - cControlInnerMargin + 1);
          glVertex2i(x + cControlInnerMargin,
                     y - (cControlBoxSize - 1) + cControlInnerMargin - 1);
          glVertex2i(x + (cControlBoxSize) - cControlInnerMargin,
                     y - (cControlBoxSize / 2));
          glEnd();
#endif
#endif
          break;
        case 4:
#ifdef PURE_OPENGL_ES_2
    /* TODO */
#else
#ifdef _PYMOL_GL_DRAWARRAYS
	  {
	    const GLint polyVerts[] = {
	      x + cControlBoxSize / 2 - 2, y - (cControlBoxSize / 2),
	      x + cControlInnerMargin, y - cControlInnerMargin,
	      x + cControlInnerMargin, y - (cControlBoxSize - 1) + cControlInnerMargin,
	      x + (cControlBoxSize - 1) - cControlInnerMargin, y - (cControlBoxSize / 2)
	    };	      
	    glEnableClientState(GL_VERTEX_ARRAY);
	    glVertexPointer(2, GL_INT, 0, polyVerts);
	    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
	    glDisableClientState(GL_VERTEX_ARRAY);
	  }
#else
          glBegin(GL_POLYGON);
          glVertex2i(x + cControlBoxSize / 2 - 2, y - (cControlBoxSize / 2));
          glVertex2i(x + cControlInnerMargin, y - cControlInnerMargin);
          glVertex2i(x + (cControlBoxSize - 1) - cControlInnerMargin,
                     y - (cControlBoxSize / 2));
          glVertex2i(x + cControlInnerMargin,
                     y - (cControlBoxSize - 1) + cControlInnerMargin);
          glEnd();
#endif
#endif
          break;
        case 5:
#ifdef PURE_OPENGL_ES_2
    /* TODO */
#else
#ifdef _PYMOL_GL_DRAWARRAYS
	  {
	    const GLint polyVerts[] = {
	      x + cControlInnerMargin, y - cControlInnerMargin,
	      x + cControlInnerMargin, y - (cControlBoxSize - 1) + cControlInnerMargin,
	      x + (cControlBoxSize - 1) - cControlInnerMargin, y - (cControlBoxSize / 2)
	    };
	    glEnableClientState(GL_VERTEX_ARRAY);
	    glVertexPointer(2, GL_INT, 0, polyVerts);
	    glDrawArrays(GL_TRIANGLES, 0, 3);
	    glDisableClientState(GL_VERTEX_ARRAY);
	  }
	  {
	    const GLint lineVerts[] = {
	      x + (cControlBoxSize - 1) - cControlInnerMargin, y - cControlInnerMargin,
	      x + (cControlBoxSize - 1) - cControlInnerMargin, y - (cControlBoxSize - 1) + cControlInnerMargin
	    };
	    glEnableClientState(GL_VERTEX_ARRAY);
	    glVertexPointer(2, GL_INT, 0, lineVerts);
	    glDrawArrays(GL_LINES, 0, 2);
	    glDisableClientState(GL_VERTEX_ARRAY);
	  }
#else
          glBegin(GL_TRIANGLES);
          glVertex2i(x + cControlInnerMargin, y - cControlInnerMargin);
          glVertex2i(x + cControlInnerMargin,
                     y - (cControlBoxSize - 1) + cControlInnerMargin);
          glVertex2i(x + (cControlBoxSize - 1) - cControlInnerMargin,
                     y - (cControlBoxSize / 2));
          glEnd();
          glBegin(GL_LINES);
          glVertex2i(x + (cControlBoxSize - 1) - cControlInnerMargin,
                     y - cControlInnerMargin);
          glVertex2i(x + (cControlBoxSize - 1) - cControlInnerMargin,
                     y - (cControlBoxSize - 1) + cControlInnerMargin);
          glEnd();
#endif
#endif
          break;
        case 6:
          TextDrawStrAt(G, "S", x + cControlInnerMargin,
                        y - cControlBoxSize + cControlInnerMargin + 1);
          break;
        case 7:
          /*
             TextDrawStrAt(G,"R",x+cControlInnerMargin,
             y-cControlBoxSize+cControlInnerMargin+1); */
#ifdef PURE_OPENGL_ES_2
    /* TODO */
#else
#ifdef _PYMOL_GL_DRAWARRAYS
	  {
	    const GLint polyVerts[] = {
	      x + (cControlBoxSize / 2) + cControlSpread, y - cControlInnerMargin,
	      x + (cControlBoxSize / 2), y - (cControlBoxSize) + cControlInnerMargin,
	      x + (cControlBoxSize / 2) - cControlSpread, y - cControlInnerMargin
	    };	      
	    glEnableClientState(GL_VERTEX_ARRAY);
	    glVertexPointer(2, GL_INT, 0, polyVerts);
	    glDrawArrays(GL_TRIANGLES, 0, 3);
	    glDisableClientState(GL_VERTEX_ARRAY);
	  }
#else
          glBegin(GL_POLYGON);
          glVertex2i(x + (cControlBoxSize / 2) + cControlSpread, y - cControlInnerMargin);
          glVertex2i(x + (cControlBoxSize / 2),
                     y - (cControlBoxSize) + cControlInnerMargin);
          glVertex2i(x + (cControlBoxSize / 2) - cControlSpread, y - cControlInnerMargin);
          glEnd();
#endif
#endif
          break;
        case 8:
          TextDrawStrAt(G, "F", x + cControlInnerMargin,
                        y - cControlBoxSize + cControlInnerMargin + 1);
          break;
        }
      }
    }
#ifdef _MACPYMOL_XCODE
    if((I->Block->rect.bottom==0) && (!SettingGetGlobal_b(G,cSetting_full_screen))) {
      int x1 = I->Block->rect.right + 1;
      int y1 = I->Block->rect.bottom - 1;
      int x2 = I->Block->rect.right - 3;
      int y2 = I->Block->rect.bottom - 5;

      glColor3f(0.3F, 0.3F, 0.3F);
#ifdef PURE_OPENGL_ES_2
    /* TODO */
#else
#ifdef _PYMOL_GL_DRAWARRAYS
      {
	const GLint lineVerts[] = {
	  x1, y1,
	  x2, y2,
	  x1, y1 + 4,
	  x2 - 4, y2,
	  x1, y1 + 8,
	  x2 - 8, y2,
	  x1, y1 + 12,
	  x2 - 12, y2,
	  x1 - 4, y1 + 12,
	  x2 - 12, y2 + 4,
	  x1 - 8, y1 + 12,
	  x2 - 12, y2 + 8,
	  x1 - 12, y1 + 12,
	  x2 - 12, y2 + 12
	};	
	glEnableClientState(GL_VERTEX_ARRAY);
	glVertexPointer(2, GL_INT, 0, lineVerts);
	glDrawArrays(GL_LINES, 0, 14);
	glDisableClientState(GL_VERTEX_ARRAY);
      }
#else
      glBegin(GL_LINES);
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      x2 -= 4;
      y1 += 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      x2 -= 4;
      y1 += 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      x2 -= 4;
      y1 += 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      y2 += 4;
      x1 -= 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      y2 += 4;
      x1 -= 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      y2 += 4;
      x1 -= 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      glEnd();
#endif
#endif
      x1 = I->Block->rect.right + 1;
      y1 = I->Block->rect.bottom - 2;
      x2 = I->Block->rect.right - 2;
      y2 = I->Block->rect.bottom - 5;

#ifdef PURE_OPENGL_ES_2
    /* TODO */
#else
      glColor3f(0.85F, 0.85F, 0.85F);
#ifdef _PYMOL_GL_DRAWARRAYS
      {
	const GLint lineVerts[] = {
	  x1, y1,
	  x2, y2,
	  x1, y1 + 4,
	  x2 - 4, y2,
	  x1, y1 + 8,
	  x2 - 8, y2,
	  x1, y1 + 12,
	  x2 - 12, y2,
	  x1 - 4, y1 + 12,
	  x2 - 12, y2 + 4,
	  x1 - 8, y1 + 12,
	  x2 - 12, y2 + 8,
	  x1 - 12, y1 + 12,
	  x2 - 12, y2 + 12
	};	
	glEnableClientState(GL_VERTEX_ARRAY);
	glVertexPointer(2, GL_INT, 0, lineVerts);
	glDrawArrays(GL_LINES, 0, 14);
	glDisableClientState(GL_VERTEX_ARRAY);
      }
#else
      glBegin(GL_LINES);
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      x2 -= 4;
      y1 += 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      x2 -= 4;
      y1 += 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      x2 -= 4;
      y1 += 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      y2 += 4;
      x1 -= 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      y2 += 4;
      x1 -= 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      y2 += 4;
      x1 -= 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      glEnd();
#endif
#endif
      x1 = I->Block->rect.right + 1;
      y1 = I->Block->rect.bottom - 3;
      x2 = I->Block->rect.right - 1;
      y2 = I->Block->rect.bottom - 5;

#ifdef PURE_OPENGL_ES_2
    /* TODO */
#else
      glColor3f(0.7F, 0.7F, 0.7F);

#ifdef _PYMOL_GL_DRAWARRAYS
      {
	const GLint lineVerts[] = {
	  x1, y1,
	  x2, y2,
	  x1, y1 + 4,
	  x2 - 4, y2,
	  x1, y1 + 8,
	  x2 - 8, y2,
	  x1, y1 + 12,
	  x2 - 12, y2,
	  x1 - 4, y1 + 12,
	  x2 - 12, y2 + 4,
	  x1 - 8, y1 + 12,
	  x2 - 12, y2 + 8,
	  x1 - 12, y1 + 12,
	  x2 - 12, y2 + 12
	};	
	glEnableClientState(GL_VERTEX_ARRAY);
	glVertexPointer(2, GL_INT, 0, lineVerts);
	glDrawArrays(GL_LINES, 0, 14);
	glDisableClientState(GL_VERTEX_ARRAY);
      }
#else
      glBegin(GL_LINES);
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      x2 -= 4;
      y1 += 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      x2 -= 4;
      y1 += 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      x2 -= 4;
      y1 += 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      y2 += 4;
      x1 -= 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      y2 += 4;
      x1 -= 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      y2 += 4;
      x1 -= 4;
      glVertex2i(x1, y1);
      glVertex2i(x2, y2);
      glEnd();
#endif
#endif
    }
#endif
  }
}
コード例 #5
0
ファイル: Control.c プロジェクト: aghozlane/pymol
static int ControlRelease(Block * block, int button, int x, int y, int mod)
{
  PyMOLGlobals *G = block->G;
  register CControl *I = G->Control;

  int sel = 0;

  I->LastPos = x;
  sel = which_button(I, x, y);
  if(!I->SkipRelease) {
    switch (sel) {
    case 0:
      SceneSetFrame(G, 4, 0);
      PLog(G, "cmd.rewind()", cPLog_pym);
      break;
    case 1:
      SceneSetFrame(G, 5, -1);
      PLog(G, "cmd.back()", cPLog_pym);
      break;
    case 2:
      MoviePlay(G, cMovieStop);
      if(SettingGet(G, cSetting_sculpting))
        SettingSet(G, cSetting_sculpting, 0);
      if(SettingGetGlobal_b(G, cSetting_rock))
        SettingSetGlobal_b(G, cSetting_rock, false);
      ExecutiveDrawNow(G);
      OrthoDirty(G);
      PLog(G, "cmd.mstop()", cPLog_pym);
      break;
    case 3:
      if(!MoviePlaying(G)) {
        if(mod & cOrthoCTRL) {
          PLog(G, "cmd.rewind()", cPLog_pym);
          PLog(G, "cmd.mplay()", cPLog_pym);
          SceneSetFrame(G, 4, 0);
          MoviePlay(G, cMoviePlay);
        } else {
          PLog(G, "cmd.mplay()", cPLog_pym);
          MoviePlay(G, cMoviePlay);
        }
      } else {
        MoviePlay(G, cMovieStop);
        ExecutiveDrawNow(G);
        OrthoDirty(G);
        PLog(G, "cmd.mstop()", cPLog_pym);
      }
      break;
    case 4:
      SceneSetFrame(G, 5, 1);
      PLog(G, "cmd.forward()", cPLog_pym);
      break;
    case 5:
      if(mod & cOrthoCTRL) {
        SceneSetFrame(G, 3, 0);
        PLog(G, "cmd.middle()", cPLog_pym);
      } else {
        SceneSetFrame(G, 6, 0);
        PLog(G, "cmd.ending()", cPLog_pym);
      }
      break;
    case 6:
      if(SettingGetGlobal_b(G, cSetting_seq_view)) {
        SettingSetGlobal_b(G, cSetting_seq_view, 0);
        SeqChanged(G);
        PLog(G, "cmd.set('seq_view',0)", cPLog_pym);
      } else {
        SettingSetGlobal_b(G, cSetting_seq_view, 1);
        SeqChanged(G);
        PLog(G, "cmd.set('seq_view',1)", cPLog_pym);
      }
      OrthoDirty(G);
      break;
    case 7:
      SettingSetGlobal_b(G, cSetting_rock, !SettingGetGlobal_b(G, cSetting_rock));
      if(SettingGetGlobal_b(G, cSetting_rock)) {
        SceneRestartSweepTimer(G);
        PLog(G, "cmd.rock(1)", cPLog_pym);
      } else
        PLog(G, "cmd.rock(0)", cPLog_pym);
      SceneRestartFrameTimer(G);
      OrthoDirty(G);
      break;
    case 8:
      PLog(G, "cmd.fullscreen()", cPLog_pym);
      ExecutiveFullScreen(G, -1);
      break;
    }
    OrthoDirty(G);
    OrthoUngrab(G);
    I->LastClickTime = UtilGetSeconds(G);
    I->DragFlag = false;
    I->Active = -1;
    I->Pressed = -1;
  }
  return (1);
}
コード例 #6
0
ファイル: tinsel.cpp プロジェクト: havlenapetr/Scummvm
Common::Error TinselEngine::run() {
	// Initialize backend
	if (getGameID() == GID_DW2) {
#ifndef DW2_EXACT_SIZE
		initGraphics(640, 480, true);
#else
		initGraphics(640, 432, true);
#endif
		_screenSurface.create(640, 432, 1);
	} else {
		initGraphics(320, 200, false);
		_screenSurface.create(320, 200, 1);
	}

	g_system->getEventManager()->registerRandomSource(_random, "tinsel");

	_console = new Console();

	_scheduler = new Scheduler();

	InitSysVars();

	// init memory manager
	MemoryInit();

	// load user configuration
	ReadConfig();

#if 1
	// FIXME: The following is taken from RestartGame().
	// It may have to be adjusted a bit
	CountOut = 1;

	RebootCursor();
	RebootDeadTags();
	RebootMovers();
	resetUserEventTime();
	RebootTimers();
	RebootScalingReels();

	DelayedScene.scene = HookScene.scene = 0;
#endif

	// Load in text strings
	ChangeLanguage(g_language);

	// Init palette and object managers, scheduler, keyboard and mouse
	RestartDrivers();

	// load in graphics info
	SetupHandleTable();

	// Actors, globals and inventory icons
	LoadBasicChunks();

	// Continuous game processes
	CreateConstProcesses();

	// allow game to run in the background
	//RestartBackgroundProcess();	// FIXME: is this still needed?

	//dumpMusic();	// dumps all of the game's music in external XMIDI files

	// Load game from specified slot, if any
	//
	// TODO: We might want to think about properly taking care of possible
	// errors when loading the save state.

	if (ConfMan.hasKey("save_slot")) {
		if (loadGameState(ConfMan.getInt("save_slot")) == Common::kNoError)
			loadingFromGMM = true;
	}

	// Foreground loop
	uint32 timerVal = 0;
	while (!shouldQuit()) {
		assert(_console);
		if (_console->isAttached())
			_console->onFrame();

		// Check for time to do next game cycle
		if ((g_system->getMillis() > timerVal + GAME_FRAME_DELAY)) {
			timerVal = g_system->getMillis();
			AudioCD.updateCD();
			NextGameCycle();
		}

		if (bRestart) {
			RestartGame();
			bRestart = false;
			bHasRestarted = true;	// Set restarted flag
		}

		// Save/Restore scene file transfers
		ProcessSRQueue();

		// Handle any playing movie
		FettleBMV();

#ifdef DEBUG
		if (bFast)
			continue;		// run flat-out
#endif
		// Loop processing events while there are any pending
		while (pollEvent())
			;

		DoCdChange();

		if (MoviePlaying() && NextMovieTime())
			g_system->delayMillis(MAX<int>(NextMovieTime() - g_system->getMillis() + MovieAudioLag(), 0));
		else
			g_system->delayMillis(10);
	}

	// Write configuration
	WriteConfig();

	return Common::kNoError;
}