/* * セレクト */ BOOL SelectSch(void) { /* * スレッド生成 */ AG_ThreadCreate(&SchThread, &ThreadSch, NULL); return TRUE; }
int AG_AnimPlay(AG_AnimState *ast) { int rv = 0; AG_MutexLock(&ast->lock); ast->play = 1; #ifdef AG_THREADS if (AG_ThreadCreate(&ast->th, AnimProc, ast) != 0) { AG_SetError("Failed to create playback thread"); rv = -1; ast->play = 0; } #else AG_SetError("AG_AnimPlay() requires threads support"); rv = -1; #endif AG_MutexUnlock(&ast->lock); return (rv); }
void InitDraw(void) { /* * ワークエリア初期化 */ #if XM7_VER >= 3 bMode = SCR_200LINE; bModeOld = bMode; #else /* */ bAnalog = FALSE; #endif /* */ bNowBPP = 24; pVirtualVramBuilder = NULL; _prefetch_data_write_permanent(&rgbTTLGDI, sizeof(rgbTTLGDI)); memset(rgbTTLGDI, 0, sizeof(rgbTTLGDI)); _prefetch_data_write_permanent(&rgbAnalogGDI, sizeof(rgbAnalogGDI)); memset(rgbAnalogGDI, 0, sizeof(rgbAnalogGDI)); _prefetch_data_write_permanent(&SDLDrawFlag, sizeof(SDLDrawFlag)); memset((void *)&SDLDrawFlag, 0, sizeof(SDLDrawFlag)); nDrawTop = 0; nDrawBottom = 400; nDrawLeft = 0; nDrawRight = 640; nOldDrawHeight = 480; nOldDrawWidth = 640; nDrawHeight = 480; nDrawWidth = 640; nDrawFPS = 25; nEmuFPS = 20; bSyncToVSYNC = TRUE; bSmoosing = FALSE; bFullScan = TRUE; bPaletFlag = FALSE; bOldFullScan = bFullScan; #if XM7_VER >= 3 nOldVideoMode = SCR_200LINE; #else nOldVideoMode = FALSE; #endif bFullScanFS = FALSE; bDoubleSize = FALSE; #if XM7_VER == 1 bGreenMonitor = FALSE; #endif bRasterRendering = FALSE; bNextFrameRender = FALSE; _prefetch_data_write_permanent(bDirtyLine, sizeof(bDirtyLine)); memset(bDirtyLine, 0, sizeof(bDirtyLine)); _prefetch_data_write_permanent(bDrawLine, sizeof(bDrawLine)); memset(bDrawLine, 0, sizeof(bDrawLine)); SetDrawFlag(FALSE); nDrawTick1D = 0; nDrawTick1E = 0; newResize = FALSE; old_crtflag = 1; #if XM7_VER >= 3 bWindowOpen = FALSE; nWindowDx1 = 640; nWindowDy1 = 400; nWindowDx2 = 0; nWindowDy2 = 0; #endif /* */ bDirectDraw = TRUE; DrawINGFlag = FALSE; DrawSHUTDOWN = FALSE; DrawWaitFlag = FALSE; // bUseOpenGL = TRUE; /* * 直接書き込み→間接書き込み */ AG_ThreadCreate(&DrawThread, DrawThreadMain, NULL); if(!DrawInitSem) { DrawInitSem = SDL_CreateSemaphore(1); SDL_SemPost(DrawInitSem); } /* * VRAMテクスチャ生成 */ #ifdef USE_OPENGL uVramTextureID = 0; #endif /* USE_OPENGL */ initvramtbl_4096_vec(); Select640(); }