コード例 #1
0
ファイル: glsm.c プロジェクト: Kivutar/reicast-emulator
bool glsm_ctl(enum glsm_state_ctl state, void *data)
{
   static bool imm_vbo_enable        = false;

   switch (state)
   {
      case GLSM_CTL_IS_FRAMEBUFFER_LOCKED:
         return glsm_fb_lock(NULL);
      case GLSM_CTL_IMM_VBO_DRAW:
         if (imm_vbo_draw == NULL || !imm_vbo_enable)
            return false;
         imm_vbo_draw(NULL);
         break;
      case GLSM_CTL_IMM_VBO_DISABLE:
         if (imm_vbo_disable == NULL || !imm_vbo_enable)
            return false;
         imm_vbo_disable(NULL);
         break;
      case GLSM_CTL_IS_IMM_VBO:
         return imm_vbo_enable;
      case GLSM_CTL_SET_IMM_VBO:
         imm_vbo_enable = true;
         break;
      case GLSM_CTL_UNSET_IMM_VBO:
         imm_vbo_enable = false;
         break;
      case GLSM_CTL_PROC_ADDRESS_GET:
         {
            glsm_ctx_proc_address_t *proc = (glsm_ctx_proc_address_t*)data;
            if (!hw_render.get_proc_address)
               return false;
            proc->addr = hw_render.get_proc_address;
         }
         break;
      case GLSM_CTL_STATE_CONTEXT_RESET:
         rglgen_resolve_symbols(hw_render.get_proc_address);
         break;
      case GLSM_CTL_STATE_CONTEXT_INIT:
         return glsm_state_ctx_init(data);
      case GLSM_CTL_STATE_SETUP:
         glsm_state_setup();
         break;
      case GLSM_CTL_STATE_UNBIND:
         glsm_state_unbind();
         break;
      case GLSM_CTL_STATE_BIND:
         glsm_state_bind();
         break;
      case GLSM_CTL_NONE:
      default:
         break;
   }

   return true;
}
コード例 #2
0
ファイル: glsm.c プロジェクト: maferv/mupen64plus-libretro
bool glsm_ctl(enum glsm_state_ctl state, void *data)
{
   switch (state)
   {
      case GLSM_CTL_IMM_VBO_DRAW:
         return false;
      case GLSM_CTL_IMM_VBO_DISABLE:
         return false;
      case GLSM_CTL_IS_IMM_VBO:
         return false;
      case GLSM_CTL_SET_IMM_VBO:
         break;
      case GLSM_CTL_UNSET_IMM_VBO:
         break;
      case GLSM_CTL_PROC_ADDRESS_GET:
         {
            glsm_ctx_proc_address_t *proc = (glsm_ctx_proc_address_t*)data;
            if (!hw_render.get_proc_address)
               return false;
            proc->addr = hw_render.get_proc_address;
         }
         break;
      case GLSM_CTL_STATE_CONTEXT_RESET:
         rglgen_resolve_symbols(hw_render.get_proc_address);
         break;
      case GLSM_CTL_STATE_CONTEXT_DESTROY:
         glsm_state_ctx_destroy(data);
         break;
      case GLSM_CTL_STATE_CONTEXT_INIT:
         return glsm_state_ctx_init(data);
      case GLSM_CTL_STATE_SETUP:
         glsm_state_setup();
         break;
      case GLSM_CTL_STATE_UNBIND:
         glsm_state_unbind();
         break;
      case GLSM_CTL_STATE_BIND:
         glsm_state_bind();
         break;
      case GLSM_CTL_NONE:
      default:
         break;
   }

   return true;
}