mirror of
https://github.com/kichikuou/xsystem35-sdl2.git
synced 2026-09-27 09:23:11 +03:00
1192 lines
30 KiB
C
1192 lines
30 KiB
C
/*
|
|
* Gpx.c Graphics 汎用関数
|
|
*
|
|
* OnlyYou -リ・クスル
|
|
* system3.9化 鬼畜王ランス
|
|
* 大悪司
|
|
*
|
|
* Copyright (C) 1997-1998 Masaki Chikama (Wren) <chikama@kasumi.ipl.mech.nagoya-u.ac.jp>
|
|
* 1998- <masaki-c@is.aist-nara.ac.jp>
|
|
*
|
|
* 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
|
|
*
|
|
*/
|
|
/* $Id: Gpx.c,v 1.11 2003/04/22 16:29:52 chikama Exp $ */
|
|
|
|
#include "config.h"
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "portab.h"
|
|
#include "system.h"
|
|
#include "xsystem35.h"
|
|
#include "modules.h"
|
|
#include "nact.h"
|
|
#include "ags.h"
|
|
#include "cg.h"
|
|
#include "image.h"
|
|
#include "input.h"
|
|
// #include "alpha_plane.h"
|
|
#include "surface.h"
|
|
#include "graph.h"
|
|
#include "graph_blend_amap.h"
|
|
|
|
#include "effectcopy.h"
|
|
#include "ngraph.h"
|
|
|
|
#define MAX_SURFACE 256
|
|
|
|
|
|
|
|
|
|
static int pre_freesurfno; /* 直前に開放した surface no */
|
|
static surface_t *suf[MAX_SURFACE];
|
|
|
|
static int find_null_surface() {
|
|
int i;
|
|
|
|
if (suf[pre_freesurfno] == NULL) return pre_freesurfno;
|
|
|
|
for (i = 1; i < MAX_SURFACE; i++) {
|
|
if (suf[i] == NULL) return i;
|
|
}
|
|
|
|
SYSERROR("no free surface");
|
|
return 0;
|
|
}
|
|
|
|
static void sf_free_one(int no) {
|
|
if (no == 0 || !suf[no]) return;
|
|
sf_free(suf[no]);
|
|
suf[no] = NULL;
|
|
pre_freesurfno = no;
|
|
}
|
|
|
|
static void sf_free_all() {
|
|
for (int i = 1; i < MAX_SURFACE; i++) {
|
|
sf_free(suf[i]);
|
|
suf[i] = NULL;
|
|
}
|
|
pre_freesurfno = 1;
|
|
}
|
|
|
|
static surface_t *sf_get(int no) {
|
|
if (no == 0) {
|
|
return nact->ags.dib;
|
|
}
|
|
return suf[no];
|
|
}
|
|
|
|
static int load_cg_main(int no) {
|
|
surface_t *sf = sf_loadcg_no(no);
|
|
int sno;
|
|
|
|
if (sf == NULL) {
|
|
WARNING("load fail(cg==NULL,no=%d)", no);
|
|
return 0;
|
|
}
|
|
|
|
sno = find_null_surface();
|
|
|
|
suf[sno] = sf;
|
|
|
|
return sno;
|
|
}
|
|
|
|
static void Init() {
|
|
/*
|
|
Gpx.Init(): Gpx モジュールの初期化
|
|
*/
|
|
int p1 = getCaliValue(); /* ISys3x */
|
|
|
|
suf[0] = NULL;
|
|
gr_init();
|
|
|
|
// surface0 を pre_freesurfno として返さないように。
|
|
pre_freesurfno = 1;
|
|
|
|
TRACE("Gpx.Init %d:", p1);
|
|
}
|
|
|
|
static void Gpx_reset(void) {
|
|
sf_free_all();
|
|
}
|
|
|
|
static void Create() {
|
|
/*
|
|
Gpx.Create(): 新規 surface の作成(PixelとAlphaマップの両方)
|
|
|
|
var : 作成した surface の番号を返す変数
|
|
作成に失敗した場合は 0 を返す
|
|
width : surface の幅
|
|
height: surface の高さ
|
|
bpp : surface の深さ(24bppのみサポート)
|
|
*/
|
|
int *var = getCaliVariable();
|
|
int width = getCaliValue();
|
|
int height = getCaliValue();
|
|
int bpp = getCaliValue();
|
|
|
|
surface_t *s = sf_create_surface(width, height);
|
|
|
|
if (s == NULL) {
|
|
*var = 0;
|
|
} else {
|
|
int no = find_null_surface();
|
|
*var = no;
|
|
suf[no] = s;
|
|
}
|
|
|
|
TRACE("Gpx.Create %p,%d,%d,%d:", var, width, height, bpp);
|
|
}
|
|
|
|
static void CreatePixelOnly() {
|
|
/*
|
|
Gpx.CreatePixelOnly(): 新規 surface の作成(Pixelのみ)
|
|
|
|
var : 作成した surface の番号を返す変数
|
|
width : surface の幅
|
|
height: surface の高さ
|
|
bpp : surface の深さ(24bpp only)
|
|
*/
|
|
int *var = getCaliVariable();
|
|
int width = getCaliValue();
|
|
int height = getCaliValue();
|
|
int bpp = getCaliValue();
|
|
|
|
surface_t *s = sf_create_pixel(width, height);
|
|
|
|
if (s == NULL) {
|
|
*var = 0;
|
|
} else {
|
|
int no = find_null_surface();
|
|
*var = no;
|
|
suf[no] = s;
|
|
}
|
|
|
|
TRACE("Gpx.CreatePixelOnly %d,%d,%d,%d:", *var, width, height, bpp);
|
|
}
|
|
|
|
static void CreateAMapOnly() {
|
|
/*
|
|
Gpx.CreateAMapOnly(): 新規 surface の作成(AlphaMapのみ)
|
|
|
|
var : 作成した surface の番号を返す変数
|
|
width : surface の幅
|
|
height: surface の高さ
|
|
*/
|
|
int *var = getCaliVariable();
|
|
int width = getCaliValue();
|
|
int height = getCaliValue();
|
|
surface_t *s;
|
|
|
|
s = sf_create_alpha(width, height);
|
|
|
|
if (s == NULL) {
|
|
*var = 0;
|
|
} else {
|
|
int no = find_null_surface();
|
|
*var = no;
|
|
suf[no] = s;
|
|
}
|
|
|
|
TRACE("Gpx.CreateAMapOnly %p,%d,%d:", var, width, height);
|
|
}
|
|
|
|
static void IsSurface() {
|
|
/*
|
|
Gpx.IsSurface(): 指定の番号が surface かどうかを調べる
|
|
|
|
p1 : surface 番号
|
|
var : 結果を返す変数。surface ならば 1, !surface ならば 0
|
|
*/
|
|
int p1 = getCaliValue();
|
|
int *var = getCaliVariable();
|
|
|
|
*var = sf_get(p1) ? 1 : 0;
|
|
|
|
TRACE("Gpx.IsSurface %d,%p:", p1, var);
|
|
}
|
|
|
|
static void IsPixel() {
|
|
/*
|
|
Gpx.IsPixel(): 指定の番号の surface が pixelデータかどうかを調べる
|
|
|
|
p1 : surface 番号
|
|
var : 結果を返す変数。pixel ならば 1, !pixel ならば 0
|
|
*/
|
|
int p1 = getCaliValue();
|
|
int *var = getCaliVariable();
|
|
surface_t *s;
|
|
|
|
s = sf_get(p1);
|
|
|
|
if (s == NULL) {
|
|
*var = 0;
|
|
} else {
|
|
*var = s->sdl_surface ? 1 : 0;
|
|
}
|
|
|
|
TRACE("Gpx.IsPixel %d,%p:", p1, var);
|
|
}
|
|
|
|
static void IsAlpha() {
|
|
/*
|
|
Gpx.IsAlpha(): 指定の番号の surface が alpha mapかどうかを調べる
|
|
|
|
p1 : surface 番号
|
|
var : 結果を返す変数。alpha ならば 1, !alpha ならば 0
|
|
*/
|
|
int p1 = getCaliValue();
|
|
int *var = getCaliVariable();
|
|
surface_t *s;
|
|
|
|
s = sf_get(p1);
|
|
|
|
if (s == NULL) {
|
|
*var = 0;
|
|
} else {
|
|
*var = s->alpha ? 1 : 0;
|
|
}
|
|
|
|
TRACE("Gpx.IsAlpha %d,%p:", p1, var);
|
|
}
|
|
|
|
static void GetWidth() {
|
|
/*
|
|
Gpx.GetWidth(): 指定の番号の surface の幅を取得する
|
|
|
|
p1 : surface 番号
|
|
var : 結果を返す変数。
|
|
*/
|
|
int p1 = getCaliValue();
|
|
int *var = getCaliVariable();
|
|
surface_t *s;
|
|
|
|
s = sf_get(p1);
|
|
|
|
if (s == NULL) {
|
|
*var = 0;
|
|
} else {
|
|
*var = s->width;
|
|
}
|
|
|
|
TRACE("Gpx.GetWidth %d,%d:", p1, *var);
|
|
}
|
|
|
|
static void GetHeight() {
|
|
/*
|
|
Gpx.GetWidth(): 指定の番号の surface の高さを取得する
|
|
|
|
p1 : surface 番号
|
|
var : 結果を返す変数。
|
|
*/
|
|
int p1 = getCaliValue();
|
|
int *var = getCaliVariable();
|
|
surface_t *s;
|
|
|
|
s = sf_get(p1);
|
|
|
|
if (s == NULL) {
|
|
*var = 0;
|
|
} else {
|
|
*var = s->height;
|
|
}
|
|
|
|
TRACE("Gpx.GetHeight %d,%d:", p1, *var);
|
|
}
|
|
|
|
static void GetCreatedSurface() { /* not used ? */
|
|
int *var = getCaliVariable();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.GetCreatedSurface %p:", var);
|
|
}
|
|
|
|
static void LoadCG() {
|
|
/*
|
|
Gpx.LoadCG(): 新規 surface を作成してその上に CG を load
|
|
|
|
var : 作成した surface の番号を返す変数
|
|
p1 : 読み込む CG の番号
|
|
*/
|
|
int *var = getCaliVariable();
|
|
int p1 = getCaliValue();
|
|
|
|
*var = load_cg_main(p1 -1);
|
|
|
|
TRACE("Gpx.LoadCG %p,%d (%d):", var, p1, *var);
|
|
}
|
|
|
|
static void GetCGPosX() { /* not useed ? */
|
|
int *var = getCaliVariable();
|
|
int p1 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.GetCgPosX %p,%d:", var, p1);
|
|
}
|
|
|
|
static void GetCGPosY() { /* not useed ? */
|
|
int *var = getCaliVariable();
|
|
int p1 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.GetCgPosY %p,%d:", var, p1);
|
|
}
|
|
|
|
static void Free() {
|
|
/*
|
|
Gpx.Free(): 指定の surface を開放する
|
|
|
|
p1: 開放する surface の番号
|
|
*/
|
|
int p1 = getCaliValue();
|
|
|
|
TRACE("Gpx.Free %d:", p1);
|
|
|
|
if (p1 != 0) {
|
|
sf_free_one(p1);
|
|
}
|
|
}
|
|
|
|
static void FreeAll() {
|
|
/*
|
|
Gpx.FreeAll(): 全ての surface を開放する
|
|
*/
|
|
sf_free_all();
|
|
|
|
TRACE("Gpx.FreeAll:");
|
|
}
|
|
|
|
static void Copy() {
|
|
/*
|
|
Gpx.Copy(): 指定 surface 領域のコピー
|
|
|
|
ds: 転送先 surface 番号
|
|
dx: 転送先 x 座標
|
|
dy: 転送先 y 座標
|
|
ss: 転送元 surface 番号
|
|
sx: 転送元 x 座標
|
|
sy: 転送元 y 座標
|
|
sw: 転送元 幅
|
|
sh: 転送元 高さ
|
|
*/
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int ss = getCaliValue();
|
|
int sx = getCaliValue();
|
|
int sy = getCaliValue();
|
|
int sw = getCaliValue();
|
|
int sh = getCaliValue();
|
|
surface_t *src, *dst;
|
|
|
|
TRACE("Gpx.Copy %d,%d,%d,%d,%d,%d,%d,%d:", ds, dx, dy, ss, sx, sy, sw, sh);
|
|
|
|
src = sf_get(ss);
|
|
dst = sf_get(ds);
|
|
gr_copy(dst, dx, dy, src, sx, sy, sw, sh);
|
|
}
|
|
|
|
static void CopyBright(void) {
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int ss = getCaliValue();
|
|
int sx = getCaliValue();
|
|
int sy = getCaliValue();
|
|
int w = getCaliValue();
|
|
int h = getCaliValue();
|
|
int lv = getCaliValue();
|
|
|
|
surface_t *dst = sf_get(ds);
|
|
surface_t *src = sf_get(ss);
|
|
gr_copy_bright(dst, dx, dy, src, sx, sy, w, h, lv);
|
|
|
|
TRACE("Gpx.CopyBright %d,%d,%d,%d,%d,%d,%d,%d,%d:", ds, dx, dy, ss, sx, sy, w, h, lv);
|
|
}
|
|
|
|
static void CopyAMap() {
|
|
/*
|
|
Gpx.CopyAMap(): 指定 surface の alpha map 領域のコピー
|
|
|
|
da: 転送先 surface(alpha map) 番号
|
|
dx: 転送先 x 座標
|
|
dy: 転送先 y 座標
|
|
sa: 転送元 surface(alpha map) 番号
|
|
sx: 転送元 x 座標
|
|
sy: 転送元 y 座標
|
|
sw: 転送元 幅
|
|
sh: 転送元 高さ
|
|
*/
|
|
int da = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int sa = getCaliValue();
|
|
int sx = getCaliValue();
|
|
int sy = getCaliValue();
|
|
int sw = getCaliValue();
|
|
int sh = getCaliValue();
|
|
surface_t *src, *dst;
|
|
|
|
TRACE("Gpx.CopyAMap %d,%d,%d,%d,%d,%d,%d,%d:", da, dx, dy, sa, sx, sy, sw, sh);
|
|
|
|
src = sf_get(sa);
|
|
dst = sf_get(da);
|
|
gr_copy_alpha_map(dst, dx, dy, src, sx, sy, sw, sh);
|
|
}
|
|
|
|
static void Blend(void) {
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int ss = getCaliValue();
|
|
int sx = getCaliValue();
|
|
int sy = getCaliValue();
|
|
int w = getCaliValue();
|
|
int h = getCaliValue();
|
|
int lv = getCaliValue();
|
|
|
|
surface_t *dst = sf_get(ds);
|
|
surface_t *src = sf_get(ss);
|
|
gr_blend(dst, dx, dy, src, sx, sy, w, h, lv);
|
|
|
|
TRACE("Gpx.Blend %d,%d,%d,%d,%d,%d,%d,%d,%d:", ds, dx, dy, ss, sx, sy, w, h, lv);
|
|
}
|
|
|
|
static void BlendSrcBright() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
int p9 = getCaliValue();
|
|
int p10 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendSrcBright %d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
|
|
}
|
|
|
|
static void BlendAddSatur() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendAddStatur %d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8);
|
|
}
|
|
|
|
static void BlendAMap() {
|
|
/*
|
|
Gpx.BlendAMap(): 転送元の alpha map を参照して 指定領域を alpha blend
|
|
|
|
ds: 転送先 surface 番号
|
|
dx: 転送先 x 座標
|
|
dy: 転送先 y 座標
|
|
ss: 転送元 surface 番号
|
|
sx: 転送元 x 座標
|
|
sy: 転送元 y 座標
|
|
sw: 転送元 幅
|
|
sh: 転送元 高さ
|
|
*/
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int ss = getCaliValue();
|
|
int sx = getCaliValue();
|
|
int sy = getCaliValue();
|
|
int sw = getCaliValue();
|
|
int sh = getCaliValue();
|
|
surface_t *src, *dst;
|
|
|
|
TRACE("Gpx.BlendAMap %d,%d,%d,%d,%d,%d,%d,%d:", ds, dx, dy, ss, sx, sy, sw, sh);
|
|
|
|
src = sf_get(ss);
|
|
dst = sf_get(ds);
|
|
gr_blend_alpha_map(dst, dx, dy, src, sx, sy, sw, sh);
|
|
}
|
|
|
|
static void BlendAMapSrcOnly() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendAMapSrcOnly %d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8);
|
|
}
|
|
|
|
static void BlendAMapColor() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
int p9 = getCaliValue();
|
|
int p10 = getCaliValue();
|
|
int p11 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendAMapColor %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
|
|
}
|
|
|
|
static void BlendAMapColorAlpha() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
int p9 = getCaliValue();
|
|
int p10 = getCaliValue();
|
|
int p11 = getCaliValue();
|
|
int p12 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendAMapColorAlpha %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
|
|
}
|
|
|
|
static void BlendAMapAlpha() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
int p9 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendAMapAlpha %d,%d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8, p9);
|
|
}
|
|
|
|
static void BlendAMapBright() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
int p9 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendAMapBright %d,%d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8, p9);
|
|
}
|
|
|
|
static void BlendAMapAlphaSrcBright() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
int p9 = getCaliValue();
|
|
int p10 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendAMapBright %d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
|
|
}
|
|
|
|
static void BlendUseAMapColor() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
int p9 = getCaliValue();
|
|
int p10 = getCaliValue();
|
|
int p11 = getCaliValue();
|
|
int p12 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendUseAMapColor %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
|
|
}
|
|
|
|
static void BlendScreen() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendScreen %d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8);
|
|
}
|
|
|
|
static void BlendMultiply() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendMultiply %d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8);
|
|
}
|
|
|
|
static void BlendScreenAlpha() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
int p9 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.BlendScreenAlpha %d,%d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8, p9);
|
|
}
|
|
|
|
static void Fill() {
|
|
/*
|
|
Gpx.Fill(): 指定領域の塗りつぶし
|
|
|
|
ds: 塗りつぶし surface 番号
|
|
dx: 領域 x 座標
|
|
dy: 領域 y 座標
|
|
dw: 領域 幅
|
|
dh: 領域 高さ
|
|
r : 塗りつぶし色 赤
|
|
g : 塗りつぶし色 緑
|
|
b : 塗りつぶし色 青
|
|
*/
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int dw = getCaliValue();
|
|
int dh = getCaliValue();
|
|
int r = getCaliValue();
|
|
int g = getCaliValue();
|
|
int b = getCaliValue();
|
|
surface_t *dst;
|
|
|
|
TRACE("Gpx.Fill %d,%d,%d,%d,%d,%d,%d,%d:", ds, dx, dy, dw, dh, r, g, b);
|
|
|
|
dst = sf_get(ds);
|
|
gr_fill(dst, dx, dy, dw, dh, r, g, b);
|
|
}
|
|
|
|
static void FillAlphaColor() { /* not used ? */
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int dw = getCaliValue();
|
|
int dh = getCaliValue();
|
|
int r = getCaliValue();
|
|
int g = getCaliValue();
|
|
int b = getCaliValue();
|
|
int lv = getCaliValue();
|
|
surface_t *dst;
|
|
|
|
TRACE("Gpx.FillAlphaColor %d,%d,%d,%d,%d,%d,%d,%d,%d:", ds, dx, dy, dw, dh, r, g, b, lv);
|
|
|
|
dst = sf_get(ds);
|
|
gr_fill_alpha_color(dst, dx, dy, dw, dh, r, g, b, lv);
|
|
}
|
|
|
|
static void FillAMap(void) {
|
|
int ds = getCaliValue();
|
|
int x = getCaliValue();
|
|
int y = getCaliValue();
|
|
int w = getCaliValue();
|
|
int h = getCaliValue();
|
|
int lv = getCaliValue();
|
|
|
|
surface_t *dst = sf_get(ds);
|
|
gr_fill_alpha_map(dst, x, y, w, h, lv);
|
|
|
|
TRACE("Gpx.FillAMap %d,%d,%d,%d,%d,%d:", ds, x, y, w, h, lv);
|
|
}
|
|
|
|
static void FillAMapOverBorder() {
|
|
/*
|
|
Gpx.FillAMapOverBorder(): 矩形領域中の 閾値以上の alpha 値を持つ
|
|
ものを指定の alpha 値に置き換え。
|
|
|
|
ds: 塗りつぶし surface 番号
|
|
dx: 領域 x 座標
|
|
dy: 領域 y 座標
|
|
dw: 領域 幅
|
|
dh: 領域 高さ
|
|
s : 閾値
|
|
d : 閾値を超えた場合の設定値
|
|
*/
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int dw = getCaliValue();
|
|
int dh = getCaliValue();
|
|
int s = getCaliValue();
|
|
int d = getCaliValue();
|
|
surface_t *dst;
|
|
|
|
TRACE("Gpx.FillAMapOverBorder %d,%d,%d,%d,%d,%d,%d:", ds, dx, dy, dw, dh, s, d);
|
|
|
|
dst = sf_get(ds);
|
|
gr_fill_alpha_overborder(dst, dx, dy, dw, dh, s, d);
|
|
}
|
|
|
|
static void FillAMapUnderBorder() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.FillAMapUnderBorder %d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7);
|
|
}
|
|
|
|
static void SaturDP_DPxSA() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.SaturDP_DPxSA %d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8);
|
|
}
|
|
|
|
static void ScreenDA_DAxSA() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.ScreenDA_DAxSA %d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8);
|
|
}
|
|
|
|
static void AddDA_DAxSA() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.AddDA_DAxSA %d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8);
|
|
}
|
|
|
|
static void SpriteCopyAMap() {
|
|
/*
|
|
Gpx.SpriteCopyAMap(): 指定の alpha 値以外の領域の alpha map コピー
|
|
|
|
da: 転送先 surface(alpha map) 番号
|
|
dx: 転送先 x 座標
|
|
dy: 転送先 y 座標
|
|
ss: 転送元 surface(alpha map) 番号
|
|
sx: 転送元 x 座標
|
|
sy: 転送元 y 座標
|
|
sw: 転送元 幅
|
|
sh: 転送元 高さ
|
|
cl: 転送しない alpha 値
|
|
*/
|
|
int da = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int sa = getCaliValue();
|
|
int sx = getCaliValue();
|
|
int sy = getCaliValue();
|
|
int sw = getCaliValue();
|
|
int sh = getCaliValue();
|
|
int cl = getCaliValue();
|
|
surface_t *src, *dst;
|
|
|
|
TRACE("Gpx.SpriteCopyAMap %d,%d,%d,%d,%d,%d,%d,%d,%d:", da, dx, dy, sa, sx, sy, sw, sh, cl);
|
|
|
|
src = sf_get(sa);
|
|
dst = sf_get(da);
|
|
gr_copy_alpha_map_sprite(dst, dx, dy, src, sx, sy, sw, sh, cl);
|
|
|
|
}
|
|
|
|
static void BrightDestOnly() {
|
|
/*
|
|
Gpx.BrightDestOnly(): 指定領域の明るさを設定
|
|
|
|
ds: 明るさを設定する surface 番号
|
|
dx: 領域 x 座標
|
|
dy: 領域 y 座標
|
|
dw: 領域 幅
|
|
dh: 領域 高さ
|
|
r : 指定明るさ (255: 明るさ 100%, pixel値そのもの)
|
|
*/
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int dw = getCaliValue();
|
|
int dh = getCaliValue();
|
|
int r = getCaliValue();
|
|
surface_t *dst;
|
|
|
|
TRACE("Gpx.BrightDestOnly %d,%d,%d,%d,%d,%d:", ds, dx, dy, dw, dh, r);
|
|
|
|
dst = sf_get(ds);
|
|
|
|
gr_bright_dst_only(dst, dx, dy, dw, dh, r);
|
|
}
|
|
|
|
static void CopyTextureWrap() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
int p9 = getCaliValue();
|
|
int p10 = getCaliValue();
|
|
int p11 = getCaliValue();
|
|
int p12 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.CopyTextureWrap %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
|
|
}
|
|
|
|
static void CopyTextureWrapAlpha() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
int p9 = getCaliValue();
|
|
int p10 = getCaliValue();
|
|
int p11 = getCaliValue();
|
|
int p12 = getCaliValue();
|
|
int p13 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.CopyTextureWrapAlpha %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
|
|
}
|
|
|
|
static void CopyStretch() {
|
|
/*
|
|
Gpx.CopyStretch(): 拡大・縮小
|
|
|
|
ds: 転送先 surface 番号
|
|
dx: 転送先 x 座標
|
|
dy: 転送先 y 座標
|
|
dw: 転送先 幅
|
|
dh: 転送先 高さ
|
|
ss: 転送元 surface 番号
|
|
sx: 転送元 x 座標
|
|
sy: 転送元 y 座標
|
|
sw: 転送元 幅
|
|
sh: 転送元 高さ
|
|
*/
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int dw = getCaliValue();
|
|
int dh = getCaliValue();
|
|
int ss = getCaliValue();
|
|
int sx = getCaliValue();
|
|
int sy = getCaliValue();
|
|
int sw = getCaliValue();
|
|
int sh = getCaliValue();
|
|
surface_t *src, *dst;
|
|
|
|
TRACE("Gpx.CopyStretch %d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", ds, dx, dy, dw, dh, ss, sx, sy, sw, sh);
|
|
|
|
src = sf_get(ss);
|
|
dst = sf_get(ds);
|
|
gr_copy_stretch(dst, dx, dy, dw, dh, src, sx, sy, sw, sh);
|
|
}
|
|
|
|
static void CopyStretchBlend() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
int p9 = getCaliValue();
|
|
int p10 = getCaliValue();
|
|
int p11 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.CopyStretchBlend %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
|
|
}
|
|
|
|
static void CopyStretchBlendAMap() {
|
|
/*
|
|
Gpx.CopyStretchBlendAMap(): 拡大・縮小しながら alpha blend
|
|
|
|
ds: 転送先 surface 番号
|
|
dx: 転送先 x 座標
|
|
dy: 転送先 y 座標
|
|
dw: 転送先 幅
|
|
dh: 転送先 高さ
|
|
ss: 転送元 surface 番号
|
|
sx: 転送元 x 座標
|
|
sy: 転送元 y 座標
|
|
sw: 転送元 幅
|
|
sh: 転送元 高さ
|
|
*/
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int dw = getCaliValue();
|
|
int dh = getCaliValue();
|
|
int ss = getCaliValue();
|
|
int sx = getCaliValue();
|
|
int sy = getCaliValue();
|
|
int sw = getCaliValue();
|
|
int sh = getCaliValue();
|
|
surface_t *src, *dst;
|
|
|
|
TRACE("Gpx.CopyStretchBlendAMap %d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", ds, dx, dy, dw, dh, ss, sx, sy, sw, sh);
|
|
|
|
src = sf_get(ss);
|
|
dst = sf_get(ds);
|
|
gr_copy_stretch_blend_alpha_map(dst, dx, dy, dw, dh, src, sx, sy, sw, sh);
|
|
}
|
|
|
|
static void StretchBlendScreen2x2() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
int p2 = getCaliValue();
|
|
int p3 = getCaliValue();
|
|
int p4 = getCaliValue();
|
|
int p5 = getCaliValue();
|
|
int p6 = getCaliValue();
|
|
int p7 = getCaliValue();
|
|
int p8 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.StretchBlendScreen2x2 %d,%d,%d,%d,%d,%d,%d,%d:", p1, p2, p3, p4, p5, p6, p7, p8);
|
|
}
|
|
|
|
|
|
static void StretchBlendScreen2x2WDS() {
|
|
/*
|
|
Gpx.StretchBlenfScreen2x2WDS(): 2枚の surface を縦横2倍に拡大しつつ
|
|
alpha blend (飽和加算)する
|
|
|
|
ds: 転送先 surface 番号
|
|
dx: 転送先 x 座標
|
|
dy: 転送先 y 座標
|
|
ss1: 転送元 surface 番号 (拡大元 surface) ss1の方が小さい
|
|
sx1: 転送元 x 座標
|
|
sy1: 転送元 y 座標
|
|
ss2: 転送元 surface 番号 (重ね先の surface)
|
|
sx2: 転送元 x 座標
|
|
sy2: 転送元 y 座標
|
|
sw: 転送元 幅 (sw*2, sh*2)の大きさに拡大
|
|
sh: 転送元 高さ
|
|
*/
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int ss1 = getCaliValue();
|
|
int sx1 = getCaliValue();
|
|
int sy1 = getCaliValue();
|
|
int ss2 = getCaliValue();
|
|
int sx2 = getCaliValue();
|
|
int sy2 = getCaliValue();
|
|
int sw = getCaliValue();
|
|
int sh = getCaliValue();
|
|
surface_t *src1, *src2, *dst;
|
|
|
|
TRACE("Gpx.StretchBlendScreen2x2WDS %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", ds, dx, dy, ss1, sx1, sy1, ss2, sx2, sy2, sw, sh);
|
|
|
|
src1 = sf_get(ss1);
|
|
src2 = sf_get(ss2);
|
|
dst = sf_get(ds);
|
|
gr_blend_alpha_wds_stretch2x2(src1, sx1, sy1, src2, sx2, sy2, sw, sh, dst, dx, dy);
|
|
}
|
|
|
|
static void BlendScreenWDS() {
|
|
/*
|
|
Gpx.BlendScreenWDS(): 飽和加算 alpha blend
|
|
|
|
ds : 転送先 surface 番号
|
|
dx : 転送先 x 座標
|
|
dy : 転送先 y 座標
|
|
ss1: 転送元 surface 番号 (重ね元の surface)
|
|
sx1: 転送元 x 座標
|
|
sy1: 転送元 y 座標
|
|
ss2: 転送元 surface 番号 (重ね先の surface)
|
|
sx2: 転送元 x 座標
|
|
sy2: 転送元 y 座標
|
|
sw : 転送元 幅
|
|
sh : 転送元 高さ
|
|
*/
|
|
int ds = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int ss1 = getCaliValue();
|
|
int sx1 = getCaliValue();
|
|
int sy1 = getCaliValue();
|
|
int ss2 = getCaliValue();
|
|
int sx2 = getCaliValue();
|
|
int sy2 = getCaliValue();
|
|
int sw = getCaliValue();
|
|
int sh = getCaliValue();
|
|
surface_t *src1, *src2, *dst;
|
|
|
|
TRACE("Gpx.BlendScreenWDS %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d:", ds, dx, dy, ss1, sx1, sy1, ss2, sx2, sy2, sw, sh);
|
|
|
|
src1 = sf_get(ss1);
|
|
src2 = sf_get(ss2);
|
|
dst = sf_get(ds);
|
|
gr_blend_alpha_wds(src1, sx1, sy1, src2, sx2, sy2, sw, sh, dst, dx, dy);
|
|
}
|
|
|
|
static void EffectCopy() {
|
|
/*
|
|
Gpx.EffectCopy(): 効果つき領域コピー
|
|
|
|
no: 効果番号
|
|
dx: 転送先 x 座標
|
|
dy: 転送先 y 座標
|
|
ss1: 転送元 surface 番号 (重ね元の surface)
|
|
sx1: 転送元 x 座標
|
|
sy1: 転送元 y 座標
|
|
ss2: 転送元 surface 番号 (重ね先の surface)
|
|
sx2: 転送元 x 座標
|
|
sy2: 転送元 y 座標
|
|
sw: 転送元 幅
|
|
sh: 転送元 高さ
|
|
time: 実行時間(ms) (0の場合はそれぞのれ効果毎のデフォルト値)
|
|
var: キー入力があったかないか?(?????)
|
|
|
|
|
|
effect no:
|
|
1: CE31 (cross fade)
|
|
2: CE29 (fade out)
|
|
3: CE27 (fade in)
|
|
4: CE30 (white out)
|
|
5: CE28 (white in)
|
|
7: CE11 (すだれ落ち)
|
|
11: CE53 (線形ぼかし)
|
|
12: CE35 (上->下クロスフェード)
|
|
13: CE36 (下->上クロスフェード)
|
|
*/
|
|
int no = getCaliValue();
|
|
int dx = getCaliValue();
|
|
int dy = getCaliValue();
|
|
int ss1 = getCaliValue();
|
|
int sx1 = getCaliValue();
|
|
int sy1 = getCaliValue();
|
|
int ss2 = getCaliValue();
|
|
int sx2 = getCaliValue();
|
|
int sy2 = getCaliValue();
|
|
int sw = getCaliValue();
|
|
int sh = getCaliValue();
|
|
int time = getCaliValue();
|
|
int *var = getCaliVariable();
|
|
|
|
TRACE("Gpx.EffectCopy %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%p:", no, dx, dy, ss1, sx1, sy1, ss2, sx2, sy2, sw, sh, time, var);
|
|
|
|
surface_t *dst = sf_get(ss1);
|
|
surface_t *src = sf_get(ss2);
|
|
gpx_effect(no, dx, dy, dst, sx1, sy1, src, sx2, sy2, sw, sh, time, var);
|
|
|
|
}
|
|
|
|
static void SetClickCancelFlag() { /* not used ? */
|
|
int p1 = getCaliValue();
|
|
|
|
TRACE_UNIMPLEMENTED("Gpx.SetClikCancelFlag %d:", p1);
|
|
}
|
|
|
|
static const ModuleFunc functions[] = {
|
|
{"AddDA_DAxSA", AddDA_DAxSA},
|
|
{"Blend", Blend},
|
|
{"BlendAMap", BlendAMap},
|
|
{"BlendAMapAlpha", BlendAMapAlpha},
|
|
{"BlendAMapAlphaSrcBright", BlendAMapAlphaSrcBright},
|
|
{"BlendAMapBright", BlendAMapBright},
|
|
{"BlendAMapColor", BlendAMapColor},
|
|
{"BlendAMapColorAlpha", BlendAMapColorAlpha},
|
|
{"BlendAMapSrcOnly", BlendAMapSrcOnly},
|
|
{"BlendAddSatur", BlendAddSatur},
|
|
{"BlendMultiply", BlendMultiply},
|
|
{"BlendScreen", BlendScreen},
|
|
{"BlendScreenAlpha", BlendScreenAlpha},
|
|
{"BlendScreenWDS", BlendScreenWDS},
|
|
{"BlendSrcBright", BlendSrcBright},
|
|
{"BlendUseAMapColor", BlendUseAMapColor},
|
|
{"BrightDestOnly", BrightDestOnly},
|
|
{"Copy", Copy},
|
|
{"CopyAMap", CopyAMap},
|
|
{"CopyBright", CopyBright},
|
|
{"CopyStretch", CopyStretch},
|
|
{"CopyStretchBlend", CopyStretchBlend},
|
|
{"CopyStretchBlendAMap", CopyStretchBlendAMap},
|
|
{"CopyTextureWrap", CopyTextureWrap},
|
|
{"CopyTextureWrapAlpha", CopyTextureWrapAlpha},
|
|
{"Create", Create},
|
|
{"CreateAMapOnly", CreateAMapOnly},
|
|
{"CreatePixelOnly", CreatePixelOnly},
|
|
{"EffectCopy", EffectCopy},
|
|
{"Fill", Fill},
|
|
{"FillAMap", FillAMap},
|
|
{"FillAMapOverBorder", FillAMapOverBorder},
|
|
{"FillAMapUnderBorder", FillAMapUnderBorder},
|
|
{"FillAlphaColor", FillAlphaColor},
|
|
{"Free", Free},
|
|
{"FreeAll", FreeAll},
|
|
{"GetCGPosX", GetCGPosX},
|
|
{"GetCGPosY", GetCGPosY},
|
|
{"GetCreatedSurface", GetCreatedSurface},
|
|
{"GetHeight", GetHeight},
|
|
{"GetWidth", GetWidth},
|
|
{"Init", Init},
|
|
{"IsAlpha", IsAlpha},
|
|
{"IsPixel", IsPixel},
|
|
{"IsSurface", IsSurface},
|
|
{"LoadCG", LoadCG},
|
|
{"SaturDP_DPxSA", SaturDP_DPxSA},
|
|
{"ScreenDA_DAxSA", ScreenDA_DAxSA},
|
|
{"SetClickCancelFlag", SetClickCancelFlag},
|
|
{"SpriteCopyAMap", SpriteCopyAMap},
|
|
{"StretchBlendScreen2x2", StretchBlendScreen2x2},
|
|
{"StretchBlendScreen2x2WDS", StretchBlendScreen2x2WDS},
|
|
};
|
|
|
|
const Module module_Gpx = {"Gpx", functions, sizeof(functions) / sizeof(ModuleFunc), Gpx_reset};
|