diff --git a/modules/Gpx/cg.c b/modules/Gpx/cg.c index 209a55c..ebf98f2 100644 --- a/modules/Gpx/cg.c +++ b/modules/Gpx/cg.c @@ -33,7 +33,7 @@ #include "ags.h" #include "pms.h" #include "qnt.h" -#include "sdl_core.h" +#include "gfx.h" #include "ngraph.h" #include "dri.h" #include "ald_manager.h" diff --git a/modules/Gpx/graph.c b/modules/Gpx/graph.c index 3bdcd54..ed44eac 100644 --- a/modules/Gpx/graph.c +++ b/modules/Gpx/graph.c @@ -11,7 +11,7 @@ #include "graph.h" #include "ngraph.h" #include "ags.h" -#include "sdl_core.h" +#include "gfx.h" /** * surface から surface にコピーなどをする際に、転送元と転送先のsurface diff --git a/modules/NIGHTDLL/nt_scenario.c b/modules/NIGHTDLL/nt_scenario.c index 3c87e67..e05e87f 100644 --- a/modules/NIGHTDLL/nt_scenario.c +++ b/modules/NIGHTDLL/nt_scenario.c @@ -8,7 +8,6 @@ #include "portab.h" #include "system.h" #include "input.h" -#include "sdl_core.h" #include "scheduler.h" #include "xsystem35.h" #include "nact.h" diff --git a/modules/NIGHTDLL/sprite_eupdate.c b/modules/NIGHTDLL/sprite_eupdate.c index 7f0a094..7143e7c 100644 --- a/modules/NIGHTDLL/sprite_eupdate.c +++ b/modules/NIGHTDLL/sprite_eupdate.c @@ -28,6 +28,7 @@ #include "ags.h" #include "input.h" #include "sprite.h" +#include "gfx.h" #include "sdl_core.h" /* diff --git a/modules/NightDemonDemo/NightDemonDemo.c b/modules/NightDemonDemo/NightDemonDemo.c index dbf7732..ed831c5 100644 --- a/modules/NightDemonDemo/NightDemonDemo.c +++ b/modules/NightDemonDemo/NightDemonDemo.c @@ -32,6 +32,7 @@ #include "nact.h" #include "alk.h" #include "music.h" +#include "gfx.h" #include "sdl_core.h" #include "input.h" #include "cg.h" diff --git a/modules/SACT/sactcg.c b/modules/SACT/sactcg.c index 1106b82..1aa3f05 100644 --- a/modules/SACT/sactcg.c +++ b/modules/SACT/sactcg.c @@ -36,7 +36,7 @@ #include "sact.h" #include "sactcg.h" #include "cg.h" -#include "sdl_core.h" +#include "gfx.h" #define SPCG_ASSERT_NO(no) \ if ((no) > (CGMAX -1)) { \ diff --git a/modules/SACT/sprite_eupdate.c b/modules/SACT/sprite_eupdate.c index 9d2a7b1..22603ad 100644 --- a/modules/SACT/sprite_eupdate.c +++ b/modules/SACT/sprite_eupdate.c @@ -29,6 +29,7 @@ #include "input.h" #include "sact.h" #include "sprite.h" +#include "gfx.h" #include "sdl_core.h" /* diff --git a/modules/tDemo/tDemo.c b/modules/tDemo/tDemo.c index 040cf6d..c0024d9 100644 --- a/modules/tDemo/tDemo.c +++ b/modules/tDemo/tDemo.c @@ -30,6 +30,7 @@ #include "alk.h" #include "input.h" #include "bgm.h" +#include "gfx.h" #include "sdl_core.h" #include "cg.h" #include "jpeg.h" diff --git a/src/ags.c b/src/ags.c index 50fae95..80b3579 100644 --- a/src/ags.c +++ b/src/ags.c @@ -35,6 +35,7 @@ #include "xsystem35.h" #include "scenario.h" #include "ags.h" +#include "gfx.h" #include "sdl_core.h" #include "alpha_plane.h" #include "utfsjis.h" diff --git a/src/cmd2F.c b/src/cmd2F.c index 705f38a..9566737 100644 --- a/src/cmd2F.c +++ b/src/cmd2F.c @@ -38,6 +38,7 @@ #include "utfsjis.h" #include "hankaku.h" #include "ags.h" +#include "gfx.h" #include "sdl_core.h" #include "ald_manager.h" #include "LittleEndian.h" diff --git a/src/cmd_check.c b/src/cmd_check.c index 61a7bc5..6a7d5ec 100644 --- a/src/cmd_check.c +++ b/src/cmd_check.c @@ -32,7 +32,7 @@ #include "selection.h" #include "message.h" #include "input.h" -#include "sdl_core.h" +#include "gfx.h" static void undeferr(); diff --git a/src/cmdi.c b/src/cmdi.c index 353dab0..a29632c 100644 --- a/src/cmdi.c +++ b/src/cmdi.c @@ -28,7 +28,6 @@ #include "xsystem35.h" #include "scenario.h" #include "ags.h" -#include "sdl_core.h" #include "input.h" #include "msgskip.h" diff --git a/src/cmdz.c b/src/cmdz.c index 8dc26bc..9d225a6 100644 --- a/src/cmdz.c +++ b/src/cmdz.c @@ -27,6 +27,7 @@ #include "portab.h" #include "xsystem35.h" +#include "gfx.h" #include "sdl_core.h" #include "scheduler.h" #include "ags.h" diff --git a/src/debugger_dap.c b/src/debugger_dap.c index e42f283..e6df034 100644 --- a/src/debugger_dap.c +++ b/src/debugger_dap.c @@ -31,6 +31,7 @@ #include "debugger_private.h" #include "debug_symbol.h" #include "msgqueue.h" +#include "gfx.h" #include "sdl_core.h" #include "system.h" #include "nact.h" diff --git a/src/ecopy.c b/src/ecopy.c index d057358..7c62923 100644 --- a/src/ecopy.c +++ b/src/ecopy.c @@ -27,6 +27,7 @@ #include #include "portab.h" +#include "gfx.h" #include "sdl_core.h" #include "input.h" #include "ags.h" diff --git a/src/gfx.h b/src/gfx.h new file mode 100644 index 0000000..4ccfe13 --- /dev/null +++ b/src/gfx.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2000- Fumihiko Murata + * 2025 kichikuou + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * +*/ +#ifndef __GFX_H__ +#define __GFX_H__ + +#include "config.h" +#include +#include "portab.h" +#include "ags.h" + +/* 初期化関係 */ +int gfx_Initialize(const char *render_driver); +void gfx_Remove(void); + +/* ウィンド関係 */ +void gfx_setWorldSize(int width, int height, int depth); +void gfx_setWindowSize(int w, int h); +void gfx_setWindowTitle(char *name); +void gfx_getWindowInfo(DispInfo *info); +void gfx_setFullscreen(bool on); +bool gfx_isFullscreen(void); +void gfx_raiseWindow(void); +surface_t *gfx_getDIB(void); +void gfx_setIntegerScaling(bool enable); +SDL_Surface *gfx_createSurfaceView(SDL_Surface *sf, int x, int y, int w, int h); + +/* 画面更新 */ +void gfx_updateArea(MyRectangle *src, MyPoint *dst); +void gfx_updateAll(MyRectangle *view_rect); +void gfx_updateScreen(void); + +/* パレット関係 */ +void gfx_setPalette(SDL_Color *pal, int first, int count); + +/* 描画関係 */ +void gfx_drawRectangle(int x, int y, int w, int h, uint8_t c); +void gfx_fillRectangle(int x, int y, int w, int h, uint8_t c); +void gfx_fillRectangleRGB(int x, int y, int w, int h, uint8_t r, uint8_t g, uint8_t b); +void gfx_fillCircle(int left, int top, int diameter, uint8_t c); +void gfx_drawLine(int x1, int y1, int x2, int y2, uint8_t c); +SDL_Rect gfx_floodFill(int x, int y, int col); +SDL_Rect gfx_drawString(int x, int y, const char *str_utf8, uint8_t col); +void gfx_copyArea(int sx,int sy, int w, int h, int dx, int dy); +void gfx_copyAreaSP(int sx, int sy, int w, int h, int dx, int dy, uint8_t sp); +void gfx_wrapColor(int sx, int sy, int w, int h, uint8_t cl, int rate); +void gfx_scaledCopyArea(int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh, int mirror); +void gfx_drawImage8(cgdata *cg, int x, int y, int sprite_color); +void gfx_drawImage16(cgdata *cg, surface_t *sf, int x, int y, int brightness, bool alpha_blend); +void gfx_drawImage24(cgdata *cg, surface_t *sf, int x, int y, int brightness); +void gfx_drawImageAlphaMap(cgdata *cg, surface_t *sf, int x, int y); +void gfx_copyAreaSP16_shadow(int sx, int sy, int w, int h, int dx, int dy, int lv); +void gfx_copyAreaSP16_alphaBlend(int sx, int sy, int w, int h, int dx, int dy, int lv); +void gfx_copyAreaSP16_alphaLevel(int sx, int sy, int w, int h, int dx, int dy, int lv); +void gfx_copy_from_alpha(int sx, int sy, int w, int h, int dx, int dy, ALPHA_DIB_COPY_TYPE flag); +void gfx_copy_to_alpha(int sx, int sy, int w, int h, int dx, int dy, ALPHA_DIB_COPY_TYPE flag); +void gfx_getPixel(int x, int y, Palette *cell); +void gfx_putRegion(void *src, int x, int y); +void gfx_restoreRegion(void *src, int x, int y); +void* gfx_saveRegion(int x, int y, int w, int h); +void gfx_delRegion(void *src); +void gfx_FlipSurfaceHorizontal(SDL_Surface *s); +void gfx_FlipSurfaceVertical(SDL_Surface *s); + +#endif /* __GFX_H__ */ diff --git a/src/gfx_draw.c b/src/gfx_draw.c index 2edeb66..8d36fba 100644 --- a/src/gfx_draw.c +++ b/src/gfx_draw.c @@ -34,8 +34,9 @@ #include "portab.h" #include "system.h" -#include "sdl_core.h" +#include "gfx.h" #include "gfx_private.h" +#include "sdl_core.h" #include "scheduler.h" #include "font.h" #include "ags.h" diff --git a/src/gfx_image.c b/src/gfx_image.c index 2c74cd5..ec0fd41 100644 --- a/src/gfx_image.c +++ b/src/gfx_image.c @@ -28,7 +28,7 @@ #include "portab.h" #include "system.h" -#include "sdl_core.h" +#include "gfx.h" #include "gfx_private.h" #include "cg.h" #include "nact.h" diff --git a/src/gfx_video.c b/src/gfx_video.c index 89974d7..e92ae17 100644 --- a/src/gfx_video.c +++ b/src/gfx_video.c @@ -31,8 +31,9 @@ #include "portab.h" #include "system.h" -#include "sdl_core.h" +#include "gfx.h" #include "gfx_private.h" +#include "sdl_core.h" #include "xsystem35.h" #include "image.h" diff --git a/src/image.c b/src/image.c index 090aa1f..0bee8ee 100644 --- a/src/image.c +++ b/src/image.c @@ -29,7 +29,6 @@ #include "cg.h" #include "config.h" #include "nact.h" -#include "sdl_core.h" #include "alpha_plane.h" #include "ags.h" diff --git a/src/nact.c b/src/nact.c index 0dfc43e..512405c 100644 --- a/src/nact.c +++ b/src/nact.c @@ -31,7 +31,7 @@ #include "portab.h" #include "scenario.h" #include "xsystem35.h" -#include "sdl_core.h" +#include "gfx.h" #include "scheduler.h" #include "ags.h" #include "nact.h" diff --git a/src/sdl_core.h b/src/sdl_core.h index 65d2e21..33e0b54 100644 --- a/src/sdl_core.h +++ b/src/sdl_core.h @@ -34,59 +34,6 @@ struct inputstring_param; -/* 初期化関係 */ -extern int gfx_Initialize(const char *render_driver); -extern void gfx_Remove(void); - -/* ウィンド関係 */ -extern void gfx_setWorldSize(int width, int height, int depth); -extern void gfx_setWindowSize(int w, int h); -extern void gfx_setWindowTitle(char *name); -extern void gfx_getWindowInfo(DispInfo *info); -extern void gfx_setFullscreen(bool on); -extern bool gfx_isFullscreen(void); -extern void gfx_raiseWindow(void); -extern surface_t *gfx_getDIB(void); -extern void gfx_setIntegerScaling(bool enable); -extern SDL_Surface *gfx_createSurfaceView(SDL_Surface *sf, int x, int y, int w, int h); - -/* 画面更新 */ -extern void gfx_updateArea(MyRectangle *src, MyPoint *dst); -extern void gfx_updateAll(MyRectangle *view_rect); -extern void gfx_updateScreen(void); - -/* パレット関係 */ -extern void gfx_setPalette(SDL_Color *pal, int first, int count); - -/* 描画関係 */ -extern void gfx_drawRectangle(int x, int y, int w, int h, uint8_t c); -extern void gfx_fillRectangle(int x, int y, int w, int h, uint8_t c); -extern void gfx_fillRectangleRGB(int x, int y, int w, int h, uint8_t r, uint8_t g, uint8_t b); -extern void gfx_fillCircle(int left, int top, int diameter, uint8_t c); -extern void gfx_drawLine(int x1, int y1, int x2, int y2, uint8_t c); -extern SDL_Rect gfx_floodFill(int x, int y, int col); -extern SDL_Rect gfx_drawString(int x, int y, const char *str_utf8, uint8_t col); -extern void gfx_copyArea(int sx,int sy, int w, int h, int dx, int dy); -extern void gfx_copyAreaSP(int sx, int sy, int w, int h, int dx, int dy, uint8_t sp); -extern void gfx_wrapColor(int sx, int sy, int w, int h, uint8_t cl, int rate); -extern void gfx_scaledCopyArea(int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh, int mirror); -extern void gfx_drawImage8(cgdata *cg, int x, int y, int sprite_color); -extern void gfx_drawImage16(cgdata *cg, surface_t *sf, int x, int y, int brightness, bool alpha_blend); -extern void gfx_drawImage24(cgdata *cg, surface_t *sf, int x, int y, int brightness); -extern void gfx_drawImageAlphaMap(cgdata *cg, surface_t *sf, int x, int y); -extern void gfx_copyAreaSP16_shadow(int sx, int sy, int w, int h, int dx, int dy, int lv); -extern void gfx_copyAreaSP16_alphaBlend(int sx, int sy, int w, int h, int dx, int dy, int lv); -extern void gfx_copyAreaSP16_alphaLevel(int sx, int sy, int w, int h, int dx, int dy, int lv); -extern void gfx_copy_from_alpha(int sx, int sy, int w, int h, int dx, int dy, ALPHA_DIB_COPY_TYPE flag); -extern void gfx_copy_to_alpha(int sx, int sy, int w, int h, int dx, int dy, ALPHA_DIB_COPY_TYPE flag); -extern void gfx_getPixel(int x, int y, Palette *cell); -extern void gfx_putRegion(void *src, int x, int y); -extern void gfx_restoreRegion(void *src, int x, int y); -extern void* gfx_saveRegion(int x, int y, int w, int h); -extern void gfx_delRegion(void *src); -void gfx_FlipSurfaceHorizontal(SDL_Surface *s); -void gfx_FlipSurfaceVertical(SDL_Surface *s); - /* Effects */ struct sdl_effect; struct sdl_effect *sdl_effect_init(SDL_Rect *rect, surface_t *old, int ox, int oy, surface_t *new, int nx, int ny, enum sdl_effect_type effect); diff --git a/src/sdl_effect.c b/src/sdl_effect.c index 81aba8c..0cdfbda 100644 --- a/src/sdl_effect.c +++ b/src/sdl_effect.c @@ -24,6 +24,7 @@ #include #include "system.h" +#include "gfx.h" #include "sdl_core.h" #include "gfx_private.h" diff --git a/src/sdl_event.c b/src/sdl_event.c index 7f4edf7..36d44c5 100644 --- a/src/sdl_event.c +++ b/src/sdl_event.c @@ -35,6 +35,7 @@ #include "system.h" #include "debugger.h" #include "nact.h" +#include "gfx.h" #include "sdl_core.h" #include "gfx_private.h" #include "scheduler.h" diff --git a/src/sdl_input.c b/src/sdl_input.c index 3456ba3..ac9f469 100644 --- a/src/sdl_input.c +++ b/src/sdl_input.c @@ -22,6 +22,7 @@ #include #include "sdl_core.h" +#include "gfx.h" #include "gfx_private.h" #include "menu.h" #include "nact.h" diff --git a/src/win/menubar.c b/src/win/menubar.c index e2517f7..9fa8b5e 100644 --- a/src/win/menubar.c +++ b/src/win/menubar.c @@ -25,6 +25,7 @@ #include "menu.h" #include "nact.h" #include "sdl_core.h" +#include "gfx.h" #include "gfx_private.h" #include "resources.h" #include "msgskip.h" diff --git a/src/xsystem35.c b/src/xsystem35.c index 7c00a43..4e895ad 100644 --- a/src/xsystem35.c +++ b/src/xsystem35.c @@ -60,6 +60,7 @@ #include "randMT.h" #include "ags.h" #include "font.h" +#include "gfx.h" #include "sdl_core.h" #include "menu.h" #include "music.h"