コード例 #1
0
ファイル: main.c プロジェクト: zerkman/fractal
/* Enqueue a flip command in RSX command buffer.
   Setup next screen to be drawn to. */
void flip(displayData *vdat) {
  s32 status = gcmSetFlip(vdat->context, vdat->curr_fb);
  assert(status == 0);
  rsxFlushBuffer(vdat->context);
  gcmSetWaitFlip(vdat->context);
  vdat->curr_fb = !vdat->curr_fb;
  ++vdat->framecnt;
}
コード例 #2
0
int flip(gcmContextData *context, s32 buffer){
	if(gcmSetFlip(context, buffer) == 0) {
		rsxFlushBuffer(context);
		// Prevent the RSX from continuing until the flip has finished.
		gcmSetWaitFlip(context);

		return TRUE;
	}
	return FALSE;
}
コード例 #3
0
static void waitFinish(gcmContextData *context, u32 sLabelVal){
	rsxSetWriteBackendLabel(context, GCM_LABEL_INDEX, sLabelVal);

	rsxFlushBuffer(context);

	while(*(vu32 *) gcmGetLabelAddress(GCM_LABEL_INDEX) != sLabelVal)
		usleep(30);

	sLabelVal++;
}
コード例 #4
0
ファイル: rsxutil.c プロジェクト: SkYNOcean/sacd-ripper
static void wait_finish()
{
    rsxSetWriteBackendLabel(context, GCM_LABEL_INDEX, sLabelVal);

    rsxFlushBuffer(context);

    while (*(vu32 *) gcmGetLabelAddress(GCM_LABEL_INDEX) != sLabelVal)
        usleep(30);

    ++sLabelVal;
}
コード例 #5
0
ファイル: rsxutil.cpp プロジェクト: CaptainCPS/PSL1GHT
void flip()
{
	if(!first_fb) waitflip();
	else gcmResetFlipStatus();

	gcmSetFlip(context,curr_fb);
	rsxFlushBuffer(context);

	gcmSetWaitFlip(context);

	curr_fb ^= 1;
	setRenderTarget(curr_fb);

	first_fb = 0;
}
コード例 #6
0
ファイル: resc.c プロジェクト: an0nym0u5/PSL1GHT
/* flip a buffer to screen */
inline int
rescFlip ( videoData *vdata )
{
  if ( rescSetConvertAndFlip ( vdata->context, vdata->rsx_buffers[vdata->currentBuffer].id ) == 0 )
  {
    rsxFlushBuffer ( vdata->context ) ;

    /* Prevent the RSX from continuing until the flip has finished. */
    rescSetWaitFlip ( vdata->context ) ;

    /* set render target */
    rescSetRenderTarget ( vdata ) ;

    return TRUE;
  }
  return FALSE;
}
コード例 #7
0
static void
psl1ght_displaytarget_display(struct sw_winsys *ws,
			      struct sw_displaytarget *dt,
			      void *context_private)
{
   struct psl1ght_sw_winsys *psl1ght = psl1ght_sw_winsys(ws);
   struct psl1ght_sw_displaytarget *psdt = psl1ght_sw_displaytarget(dt);

   if (psdt->bufferId == NO_BUFFER) {
       if (!psl1ght_displaytarget_set_buffer(psl1ght, psdt))
	  return;
   }

   gcmResetFlipStatus();
   if (!gcmSetFlip(psl1ght->ctx, psdt->bufferId)) {
      rsxFlushBuffer(psl1ght->ctx);
      gcmSetWaitFlip(psl1ght->ctx);
   }
}
コード例 #8
0
ファイル: rsxutil.c プロジェクト: KorbenGIT/tiny3D
void flip(s32 buffer) {
	assert(gcmSetFlip(context, buffer) == 0);
	rsxFlushBuffer(context);
	gcmSetWaitFlip(context); // Prevent the RSX from continuing until the flip has finished.
}