mirror of
https://github.com/kichikuou/xsystem35-sdl2.git
synced 2026-10-04 20:58:11 +03:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
82c8b76a58 |
+17
-13
@@ -35,6 +35,7 @@
|
||||
#include "ags.h"
|
||||
#include "variable.h"
|
||||
#include "sactcg.h"
|
||||
#include "ald_manager.h"
|
||||
#include "cg.h"
|
||||
#include "gfx.h"
|
||||
|
||||
@@ -328,24 +329,27 @@ void scg_free(int no) {
|
||||
// CGの種類を取得
|
||||
int scg_querytype(int wNumCG) {
|
||||
if (wNumCG >= (CGMAX -1)) return CG_NOTUSED;
|
||||
if (!cg_store || !cg_store[wNumCG]) return CG_NOTUSED;
|
||||
return cg_store[wNumCG]->type;
|
||||
if (cg_store && cg_store[wNumCG])
|
||||
return cg_store[wNumCG]->type;
|
||||
// Linked CGs are valid even before they are loaded into cg_store.
|
||||
return ald_is_linked(DRIFILE_CG, wNumCG - 1) ? CG_LINKED : CG_NOTUSED;
|
||||
}
|
||||
|
||||
// CGの大きさを取得
|
||||
bool scg_querysize(int wNumCG, vmvar_t *w, vmvar_t *h) {
|
||||
if (wNumCG >= (CGMAX -1)) goto errexit;
|
||||
if (!cg_store || !cg_store[wNumCG]) goto errexit;
|
||||
if (cg_store[wNumCG]->sf == NULL) goto errexit;
|
||||
|
||||
*w = cg_store[wNumCG]->sf->w;
|
||||
*h = cg_store[wNumCG]->sf->h;
|
||||
|
||||
return true;
|
||||
|
||||
errexit:
|
||||
*w = *h = 0;
|
||||
return false;
|
||||
|
||||
if (wNumCG >= (CGMAX - 1))
|
||||
return false;
|
||||
cginfo_t *cg = cg_store ? cg_store[wNumCG] : NULL;
|
||||
if (!cg && ald_is_linked(DRIFILE_CG, wNumCG - 1))
|
||||
cg = scg_get(wNumCG);
|
||||
if (!cg || !cg->sf)
|
||||
return false;
|
||||
|
||||
*w = cg->sf->w;
|
||||
*h = cg->sf->h;
|
||||
return true;
|
||||
}
|
||||
|
||||
// CGのBPPを取得
|
||||
|
||||
@@ -191,7 +191,6 @@ static void eff_init(struct effect *eff, SDL_Rect *rect, EffectTexture *old, Eff
|
||||
|
||||
if (!eff->is_fullscreen)
|
||||
gfx_updateScreen(); // Flush pending display changes.
|
||||
gfx_setEffectRunning(true);
|
||||
}
|
||||
|
||||
static void eff_finish(struct effect *eff, bool present) {
|
||||
@@ -1913,5 +1912,4 @@ void effect_step(struct effect *eff, float progress) {
|
||||
|
||||
void effect_finish(struct effect *eff) {
|
||||
eff->finish(eff);
|
||||
gfx_setEffectRunning(false);
|
||||
}
|
||||
|
||||
+1
-8
@@ -45,7 +45,6 @@
|
||||
#include "debugger.h"
|
||||
|
||||
static bool gfx_dirty;
|
||||
static bool gfx_effect_running;
|
||||
|
||||
static void gfx_pal_check(void) {
|
||||
if (nact->ags.pal_changed) {
|
||||
@@ -65,7 +64,7 @@ SDL_Color gfx_getPaletteColor(uint8_t color) {
|
||||
}
|
||||
|
||||
void gfx_updateScreen(void) {
|
||||
if (!gfx_dirty || gfx_effect_running)
|
||||
if (!gfx_dirty)
|
||||
return;
|
||||
SDL_RenderClear(gfx_renderer);
|
||||
SDL_RenderCopy(gfx_renderer, gfx_texture, NULL, NULL);
|
||||
@@ -74,12 +73,6 @@ void gfx_updateScreen(void) {
|
||||
gfx_dirty = false;
|
||||
}
|
||||
|
||||
void gfx_setEffectRunning(bool running) {
|
||||
gfx_effect_running = running;
|
||||
// Effects present directly. Do not replay pending redraws over their frames.
|
||||
gfx_dirty = false;
|
||||
}
|
||||
|
||||
void gfx_requestRedraw(void) {
|
||||
gfx_dirty = true;
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@ extern surface_t *gfx_dibinfo;
|
||||
extern int view_w;
|
||||
extern int view_h;
|
||||
|
||||
void gfx_setEffectRunning(bool running);
|
||||
|
||||
SDL_Surface *gfx_dib_to_surface_with_alpha(int x, int y, int w, int h);
|
||||
SDL_Surface *gfx_dib_to_surface_colorkey(int x, int y, int w, int h, int col);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user