本文整理汇总了C++中GraphicsPlugin类的典型用法代码示例。如果您正苦于以下问题:C++ GraphicsPlugin类的具体用法?C++ GraphicsPlugin怎么用?C++ GraphicsPlugin使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了GraphicsPlugin类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
//-----------------------------------------------------------------------------
//* Update Screen
//! This function is called in response to a vsync of the
//! screen where the VI bit in MI_INTR_REG has already been set
//-----------------------------------------------------------------------------
EXPORT void CALL UpdateScreen()
{
if (g_config.getConfig()->screenUpdateSetting == SCREEN_UPDATE_VI)
g_graphicsPlugin.drawScreen();
else if (g_config.getConfig()->screenUpdateSetting == SCREEN_UPDATE_CI)
g_graphicsPlugin.setDrawScreenSignal();
else
{
Logger::getSingleton().printMsg("Invalid screen update setting!", M64MSG_WARNING);
g_graphicsPlugin.drawScreen();
}
}
示例2: ProcessDList
//-----------------------------------------------------------------------------
//* ProcessDList
//! This function is called when there is a Dlist to be processed. (High level GFX list)
//-----------------------------------------------------------------------------
EXPORT void CALL ProcessDList()
{
Logger::getSingleton().printMsg("ProcessDList\n");
try
{
g_graphicsPlugin.viStatusChanged();
g_graphicsPlugin.processDisplayList();
}
catch (...)
{
Logger::getSingleton().printMsg("Unknown Error processing DisplayList", M64MSG_WARNING);
//MessageBox(0, "Unknown Error processing DisplayList", "Arachnoid Graphics Plugin", MB_OK|MB_SETFOREGROUND);
g_graphicsPlugin.dispose();
g_graphicsPlugin.initialize(&g_graphicsInfo);
//Trigger Interupts
*(g_graphicsInfo.MI_INTR_REG) |= MI_INTR_DP;
g_graphicsInfo.CheckInterrupts();
*(g_graphicsInfo.MI_INTR_REG) |= MI_INTR_SP;
g_graphicsInfo.CheckInterrupts();
}
}
示例3: videoPluginStartup
EXPORT m64p_error CALL videoPluginStartup(m64p_dynlib_handle CoreLibHandle, void *Context,
void (*DebugCallback)(void *, int, const char *))
{
char logMsg[530];
Logger::getSingleton().initialize(DebugCallback, Context);
Logger::getSingleton().printMsg("PluginStartup");
//Read configuration
if (g_config.initialize())
{
g_config.load();
g_graphicsPlugin.setConfig(g_config.getConfig());
}
return M64ERR_SUCCESS;
}
示例4: videoInitiateGFX
//-----------------------------------------------------------------------------
//* InitiateGFX
//! This function is called when the DLL is started to give
//! information from the emulator that the n64 graphics
//! uses. This is not called from the emulation thread.
//! @param[in] Gfx_Info Information about rom and emulator
//! @return true on success, FALSE on failure to initialise
//!
//! @note on interrupts :
//! To generate an interrupt set the appropriate bit in MI_INTR_REG
//! and then the function CheckInterrupts to tell the emulator
//! that there is a waiting interrupt.
//-----------------------------------------------------------------------------
EXPORT BOOL CALL videoInitiateGFX(GFX_INFO Gfx_Info)
{
char logMsg[530];
Logger::getSingleton().initialize(0, 0);
Logger::getSingleton().printMsg("PluginStartup");
//Read configuration
// if (g_config.initialize())
// {
// g_config.load();
g_graphicsPlugin.setConfig(g_config.getConfig());
// }
Logger::getSingleton().printMsg("InitiateGFX");
//Save Graphics Info
memcpy(&g_graphicsInfo, &Gfx_Info, sizeof(GFX_INFO));
return true;
}
示例5:
//-----------------------------------------------------------------------------
//* ReadScreen2
//! This function reads the pixels of the currently displayed screen
//-----------------------------------------------------------------------------
EXPORT void CALL ReadScreen2(void *dest, int *width, int *height, int front)
{
g_graphicsPlugin.takeScreenshot(dest, width, height, front);
}
示例6: ChangeWindow
//-----------------------------------------------------------------------------
//* ChangeWindow
//! Toggle between fullscreen and window mode
//-----------------------------------------------------------------------------
EXPORT void CALL ChangeWindow()
{
Logger::getSingleton().printMsg("ChangeWindow\n");
//Toggle Fullscreen
g_graphicsPlugin.toggleFullscreen();
}
示例7: RomClosed
//-----------------------------------------------------------------------------
//* Rom Closed
//! This function is called when a rom is closed.
//-----------------------------------------------------------------------------
EXPORT void CALL RomClosed()
{
//Logger::getSingleton().printMsg("RomClosed\n");
//Destroy
g_graphicsPlugin.dispose();
}
示例8: RomOpen
//-----------------------------------------------------------------------------
//* Rom Open
//! This function is called when a rom is open. (from the emulation thread)
//-----------------------------------------------------------------------------
EXPORT int CALL RomOpen()
{
Logger::getSingleton().printMsg("RomOpen\n");
return g_graphicsPlugin.initialize(&g_graphicsInfo);
}
示例9: PluginStartup
EXPORT m64p_error CALL PluginStartup(m64p_dynlib_handle CoreLibHandle, void *Context,
void (*DebugCallback)(void *, int, const char *))
{
char logMsg[530];
Logger::getSingleton().initialize(DebugCallback, Context);
Logger::getSingleton().printMsg("PluginStartup");
/* attach and call the CoreGetAPIVersions function, check Config and Video Extension API versions for compatibility */
ptr_CoreGetAPIVersions CoreAPIVersionFunc;
CoreAPIVersionFunc = (ptr_CoreGetAPIVersions) osal_dynlib_getproc(CoreLibHandle, "CoreGetAPIVersions");
if (CoreAPIVersionFunc == NULL)
{
sprintf(logMsg, "Core emulator broken; no CoreAPIVersionFunc() function found.");
Logger::getSingleton().printMsg(logMsg, M64MSG_ERROR);
return M64ERR_INCOMPATIBLE;
}
int ConfigAPIVersion, DebugAPIVersion, VidextAPIVersion;
(*CoreAPIVersionFunc)(&ConfigAPIVersion, &DebugAPIVersion, &VidextAPIVersion, NULL);
if ((ConfigAPIVersion & 0xffff0000) != (CONFIG_API_VERSION & 0xffff0000))
{
sprintf(logMsg, "Emulator core Config API (v%i.%i.%i) incompatible with plugin (v%i.%i.%i)",
VERSION_PRINTF_SPLIT(ConfigAPIVersion), VERSION_PRINTF_SPLIT(CONFIG_API_VERSION));
Logger::getSingleton().printMsg(logMsg, M64MSG_ERROR);
return M64ERR_INCOMPATIBLE;
}
if ((VidextAPIVersion & 0xffff0000) != (VIDEXT_API_VERSION & 0xffff0000))
{
sprintf(logMsg, "Emulator core Video Extension API (v%i.%i.%i) incompatible with plugin (v%i.%i.%i)",
VERSION_PRINTF_SPLIT(VidextAPIVersion), VERSION_PRINTF_SPLIT(VIDEXT_API_VERSION));
Logger::getSingleton().printMsg(logMsg, M64MSG_ERROR);
return M64ERR_INCOMPATIBLE;
}
/* Get the core config function pointers from the library handle */
ConfigOpenSection = (ptr_ConfigOpenSection) osal_dynlib_getproc(CoreLibHandle, "ConfigOpenSection");
ConfigSetParameter = (ptr_ConfigSetParameter) osal_dynlib_getproc(CoreLibHandle, "ConfigSetParameter");
ConfigGetParameter = (ptr_ConfigGetParameter) osal_dynlib_getproc(CoreLibHandle, "ConfigGetParameter");
ConfigSetDefaultInt = (ptr_ConfigSetDefaultInt) osal_dynlib_getproc(CoreLibHandle, "ConfigSetDefaultInt");
ConfigSetDefaultFloat = (ptr_ConfigSetDefaultFloat) osal_dynlib_getproc(CoreLibHandle, "ConfigSetDefaultFloat");
ConfigSetDefaultBool = (ptr_ConfigSetDefaultBool) osal_dynlib_getproc(CoreLibHandle, "ConfigSetDefaultBool");
ConfigSetDefaultString = (ptr_ConfigSetDefaultString) osal_dynlib_getproc(CoreLibHandle, "ConfigSetDefaultString");
ConfigGetParamInt = (ptr_ConfigGetParamInt) osal_dynlib_getproc(CoreLibHandle, "ConfigGetParamInt");
ConfigGetParamFloat = (ptr_ConfigGetParamFloat) osal_dynlib_getproc(CoreLibHandle, "ConfigGetParamFloat");
ConfigGetParamBool = (ptr_ConfigGetParamBool) osal_dynlib_getproc(CoreLibHandle, "ConfigGetParamBool");
ConfigGetParamString = (ptr_ConfigGetParamString) osal_dynlib_getproc(CoreLibHandle, "ConfigGetParamString");
ConfigGetSharedDataFilepath = (ptr_ConfigGetSharedDataFilepath) osal_dynlib_getproc(CoreLibHandle, "ConfigGetSharedDataFilepath");
ConfigGetUserConfigPath = (ptr_ConfigGetUserConfigPath) osal_dynlib_getproc(CoreLibHandle, "ConfigGetUserConfigPath");
ConfigGetUserDataPath = (ptr_ConfigGetUserDataPath) osal_dynlib_getproc(CoreLibHandle, "ConfigGetUserDataPath");
ConfigGetUserCachePath = (ptr_ConfigGetUserCachePath) osal_dynlib_getproc(CoreLibHandle, "ConfigGetUserCachePath");
if (!ConfigOpenSection || !ConfigSetParameter || !ConfigGetParameter ||
!ConfigSetDefaultInt || !ConfigSetDefaultFloat || !ConfigSetDefaultBool || !ConfigSetDefaultString ||
!ConfigGetParamInt || !ConfigGetParamFloat || !ConfigGetParamBool || !ConfigGetParamString ||
!ConfigGetSharedDataFilepath || !ConfigGetUserConfigPath || !ConfigGetUserDataPath || !ConfigGetUserCachePath)
{
Logger::getSingleton().printMsg("Couldn't connect to Core configuration functions", M64MSG_ERROR);
return M64ERR_INCOMPATIBLE;
}
/* Get the core Video Extension function pointers from the library handle */
CoreVideo_Init = (ptr_VidExt_Init) osal_dynlib_getproc(CoreLibHandle, "VidExt_Init");
CoreVideo_Quit = (ptr_VidExt_Quit) osal_dynlib_getproc(CoreLibHandle, "VidExt_Quit");
CoreVideo_ListFullscreenModes = (ptr_VidExt_ListFullscreenModes) osal_dynlib_getproc(CoreLibHandle, "VidExt_ListFullscreenModes");
CoreVideo_SetVideoMode = (ptr_VidExt_SetVideoMode) osal_dynlib_getproc(CoreLibHandle, "VidExt_SetVideoMode");
CoreVideo_SetCaption = (ptr_VidExt_SetCaption) osal_dynlib_getproc(CoreLibHandle, "VidExt_SetCaption");
CoreVideo_ToggleFullScreen = (ptr_VidExt_ToggleFullScreen) osal_dynlib_getproc(CoreLibHandle, "VidExt_ToggleFullScreen");
CoreVideo_ResizeWindow = (ptr_VidExt_ResizeWindow) osal_dynlib_getproc(CoreLibHandle, "VidExt_ResizeWindow");
CoreVideo_GL_GetProcAddress = (ptr_VidExt_GL_GetProcAddress) osal_dynlib_getproc(CoreLibHandle, "VidExt_GL_GetProcAddress");
CoreVideo_GL_SetAttribute = (ptr_VidExt_GL_SetAttribute) osal_dynlib_getproc(CoreLibHandle, "VidExt_GL_SetAttribute");
CoreVideo_GL_SwapBuffers = (ptr_VidExt_GL_SwapBuffers) osal_dynlib_getproc(CoreLibHandle, "VidExt_GL_SwapBuffers");
if (!CoreVideo_Init || !CoreVideo_Quit || !CoreVideo_ListFullscreenModes || !CoreVideo_SetVideoMode ||
!CoreVideo_SetCaption || !CoreVideo_ToggleFullScreen || !CoreVideo_GL_GetProcAddress ||
!CoreVideo_GL_SetAttribute || !CoreVideo_GL_SwapBuffers || !CoreVideo_ResizeWindow)
{
Logger::getSingleton().printMsg("Couldn't connect to Core video functions", M64MSG_ERROR);
return M64ERR_INCOMPATIBLE;
}
//Read configuration
if (g_config.initialize())
{
g_config.load();
g_graphicsPlugin.setConfig(g_config.getConfig());
}
return M64ERR_SUCCESS;
}