1 Commits

Author SHA1 Message Date
Hiroaki Sakai
1d5ebf4867 When executing a function related to text display, (although characters are not displayed as usual)
At the very least I output the character string to the terminal.

We implemented the window function of screen 2.

Version 0.0.2 alpha - from wonx-a02.tar.gz
2000-09-27 12:00:00 +09:00
9 changed files with 186 additions and 57 deletions

16
HISTORY
View File

@@ -0,0 +1,16 @@
2000/9/27(<28><>)
Wonx-a02 <20><><EFBFBD><EFBFBD>
<EFBFBD>ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>δؿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD>ˡ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>餺ʸ<E9A4BA><CAB8><EFBFBD><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD>)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߥʥ<EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣲤Υ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɥ<EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2000/9/26(<28><>)
Wonx-a01 <20><><EFBFBD><EFBFBD>

View File

@@ -2,8 +2,8 @@ XINCLUDEDIR = /usr/X11R6/include
INCLUDEDIR = .
XLIBDIR = /usr/X11R6/lib
VERSION = Wonx-a01
PKGNAME = wonx-a01
VERSION = Wonx-a02
PKGNAME = wonx-a02
OBJS = WWCharacter.o WWColorMap.o WWDisplay.o WWLCDPanel.o WWPalette.o WWScreen.o WWSprite.o WonxDisplay.o XDisplay.o bank.o comm.o disp.o text.o key.o sound.o system.o timer.o etc.o wonx.o

View File

@@ -20,14 +20,10 @@ WWSprite WWDisplay_GetSprite(WWDisplay d, int n) { return (d->sprite[n]); }
WWScreen WWDisplay_GetScreen(WWDisplay d, int n) { return (d->screen[n]); }
WWLCDPanel WWDisplay_GetLCDPanel(WWDisplay d) { return (d->lcd_panel); }
int WWDisplay_GetScreenEnable(WWDisplay d, int n)
{ return (d->screen_enable[n]); }
int WWDisplay_GetSpriteEnable(WWDisplay d) { return (d->sprite_enable); }
int WWDisplay_GetSpriteWindowEnable(WWDisplay d)
{ return (d->sprite_window_enable); }
int WWDisplay_GetScreen2WindowMode(WWDisplay d)
{ return (d->screen2_window_mode); }
int WWDisplay_GetBorder(WWDisplay d) { return (d->border); }
int WWDisplay_GetForegroundColor(WWDisplay d) { return (d->foreground_color); }
@@ -53,15 +49,11 @@ WWScreen WWDisplay_SetScreen(WWDisplay d, int n, WWScreen s)
WWLCDPanel WWDisplay_SetLCDPanel(WWDisplay d, WWLCDPanel p)
{ return (d->lcd_panel = p); }
int WWDisplay_SetScreenEnable(WWDisplay d, int n, int f)
{ return (d->screen_enable[n] = f); }
int WWDisplay_SetSpriteEnable(WWDisplay d, int f)
{ return (d->sprite_enable = f); }
int WWDisplay_SetSpriteWindowEnable(WWDisplay d, int f)
{ return (d->sprite_window_enable = f); }
int WWDisplay_SetScreen2WindowMode(WWDisplay d, int mode)
{ return (d->screen2_window_mode = mode); }
int WWDisplay_SetBorder(WWDisplay d, int b) { return (d->border = b); }
int WWDisplay_SetForegroundColor(WWDisplay d, int c)
@@ -109,18 +101,17 @@ WWDisplay WWDisplay_Create(int lcd_panel_width, int lcd_panel_height,
WWDisplay_SetScreen(display, i,
WWScreen_Create(i, screen_width, screen_height,
WWDisplay_GetPalette(display, 0),
WWDisplay_GetCharacter(display, 0)));
WWDisplay_GetCharacter(display, 0),
0, 0,
lcd_panel_width, lcd_panel_height));
}
WWDisplay_SetLCDPanel(display, WWLCDPanel_Create(lcd_panel_width,
lcd_panel_height));
WWDisplay_SetScreenEnable(display, 0, 0);
WWDisplay_SetScreenEnable(display, 1, 0);
WWDisplay_SetSpriteEnable(display, 0);
WWDisplay_SetSpriteWindowEnable(display, 0);
WWDisplay_SetScreen2WindowMode(display, 0);
WWDisplay_SetBorder(display, 0);
WWDisplay_SetForegroundColor(display, 3);
@@ -189,16 +180,47 @@ static int WWDisplay_DrawScreen(WWDisplay display, WWScreen screen)
int pixel;
int x, y, px, py;
int sx, sy, ex, ey;
int mode;
if (!WWScreen_GetEnable(screen)) return (0);
lcd_panel = WWDisplay_GetLCDPanel(display);
lcd_panel_width = WWLCDPanel_GetWidth( lcd_panel);
lcd_panel_height = WWLCDPanel_GetHeight(lcd_panel);
if ( (WWScreen_GetMode(screen) == WWSCREEN_INSIDE_ONLY) ||
(WWScreen_GetMode(screen) == WWSCREEN_OUTSIDE_ONLY) ) {
sx = WWScreen_GetDrawX(screen);
sy = WWScreen_GetDrawX(screen);
ex = sx + WWScreen_GetDrawWidth( screen) - 1;
ey = sy + WWScreen_GetDrawHeight(screen) - 1;
}
mode = WWScreen_GetMode(screen);
/* <20>ʲ<EFBFBD><CAB2>ϥۥåȥ<C3A5><C8A5>ݥåȤˤʤ<CBA4><CAA4>Τǡ<CEA4><C7A1><EFBFBD><EFBFBD>Τ<EFBFBD><CEA4><EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* <20><><EFBFBD><EFBFBD><EFBFBD>ۤ<EFBFBD><DBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
for (y = 0; y < lcd_panel_height; y++) {
for (x = 0; x < lcd_panel_width; x++) {
px = x + WWScreen_GetRollX(screen);
py = y + WWScreen_GetRollY(screen);
if (mode == WWSCREEN_INSIDE_ONLY) {
if (y > ey) {
x = lcd_panel_width - 1; y = lcd_panel_height - 1; continue;
}
if (y < sy) { x = lcd_panel_width - 1; y = sy - 1; continue; }
if (x > ex) { x = lcd_panel_width - 1; continue; }
if (x < sx) { x = sx - 1; continue; }
} else if (mode == WWSCREEN_OUTSIDE_ONLY) {
if ( (x >= sx) && (x <= ex) && (y >= sy) && (y <= ey) ) {
x = ex;
continue;
}
}
pixel = WWScreen_GetPixel(screen, px, py);
/* Ʃ<><C6A9><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><CEBE><EFBFBD> */

View File

@@ -32,11 +32,9 @@ WWCharacter WWDisplay_GetCharacter(WWDisplay d, int n);
WWSprite WWDisplay_GetSprite(WWDisplay d, int n);
WWScreen WWDisplay_GetScreen(WWDisplay d, int n);
WWLCDPanel WWDisplay_GetLCDPanel(WWDisplay d);
int WWDisplay_GetScreenEnable(WWDisplay d, int n);
int WWDisplay_GetSpriteEnable(WWDisplay d);
int WWDisplay_GetSpriteWindowEnable(WWDisplay d);
int WWDisplay_GetScreen2WindowMode(WWDisplay d);
int WWDisplay_GetBorder(WWDisplay d);
int WWDisplay_GetForegroundColor(WWDisplay d);
@@ -56,11 +54,9 @@ WWSprite WWDisplay_SetSprite(WWDisplay d, int n, WWSprite s);
WWScreen WWDisplay_SetScreen(WWDisplay d, int n, WWScreen s);
WWLCDPanel WWDisplay_SetLCDPanel(WWDisplay d, WWLCDPanel p);
int WWDisplay_SetScreenEnable(WWDisplay d, int n, int f);
int WWDisplay_SetSpriteEnable(WWDisplay d, int f);
int WWDisplay_SetSpriteWindowEnable(WWDisplay d, int f);
int WWDisplay_SetScreen2WindowMode(WWDisplay d, int mode);
int WWDisplay_SetBorder(WWDisplay d, int b);
int WWDisplay_SetForegroundColor(WWDisplay d, int c);

View File

@@ -21,14 +21,9 @@ typedef struct _WWDisplay {
WWLCDPanel lcd_panel;
/* <20>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD>ץ쥤<D7A5><ECA5A4>°<EFBFBD><C2B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
int screen_enable[2]; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA1BC>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><CDA1>֥<EFBFBD><D6A5>ե饰 */
int sprite_enable; /* <20><><EFBFBD>ץ饤<D7A5><E9A5A4>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><CDA1>֥<EFBFBD><D6A5>ե饰 */
int sprite_window_enable; /* <20><><EFBFBD>ץ饤<D7A5>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɥ<EFBFBD><C9A5><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD>͡<EFBFBD><CDA1>֥<EFBFBD><D6A5>ե饰 */
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣲥<EFBFBD><F3A3B2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɥ<EFBFBD><C9A5><EFBFBD><E2A1BC> */
/* 0,1... ̵<><CCB5> 2...<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɥ<EFBFBD><C9A5><EFBFBD><EFBFBD><EFBFBD>¦<EFBFBD><C2A6>ɽ<EFBFBD><C9BD> 3...<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɥ<EFBFBD><C9A5>γ<EFBFBD>¦<EFBFBD><C2A6>ɽ<EFBFBD><C9BD> */
int screen2_window_mode;
int border; /* <20>ܡ<EFBFBD><DCA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A1BC>0<EFBFBD><30>7<EFBFBD>Υ<EFBFBD><CEA5><EFBFBD>ޥå<DEA5><C3A5>ֹ<EFBFBD> */
int foreground_color; /* <20><><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD> */

View File

@@ -73,7 +73,6 @@ static WWScreenCharacter WWScreen_SetScreenCharacter(WWScreen s, int x, int y,
/* <20>ѥ֥<D1A5><D6A5>å<EFBFBD><C3A5>ʤ<EFBFBD><CAA4><EFBFBD> */
/*===========================================================================*/
int WWScreen_GetNumber(WWScreen s) { return (s->number); }
int WWScreen_GetHorizontal(WWScreen s, int x, int y)
{ return (WWScreen_GetScreenCharacter(s, x, y)->horizontal); }
int WWScreen_GetVertical(WWScreen s, int x, int y)
@@ -83,7 +82,6 @@ WWPalette WWScreen_GetPalette(WWScreen s, int x, int y)
WWCharacter WWScreen_GetCharacter(WWScreen s, int x, int y)
{ return (WWScreen_GetScreenCharacter(s, x, y)->character); }
int WWScreen_SetNumber(WWScreen s, int n) { return (s->number = n); }
int WWScreen_SetHorizontal(WWScreen s, int x, int y, int f)
{ return (WWScreen_GetScreenCharacter(s, x, y)->horizontal = f); }
int WWScreen_SetVertical(WWScreen s, int x, int y, int f)
@@ -93,16 +91,34 @@ WWPalette WWScreen_SetPalette(WWScreen s, int x, int y, WWPalette palette)
WWCharacter WWScreen_SetCharacter(WWScreen s, int x, int y, WWCharacter c)
{ return (WWScreen_GetScreenCharacter(s, x, y)->character = c); }
int WWScreen_GetNumber(WWScreen s) { return (s->number); }
int WWScreen_GetWidth( WWScreen s) { return (s->width ); }
int WWScreen_GetHeight(WWScreen s) { return (s->height); }
int WWScreen_GetRollX( WWScreen s) { return (s->roll_x); }
int WWScreen_GetRollY( WWScreen s) { return (s->roll_y); }
int WWScreen_GetEnable(WWScreen s) { return (s->enable); }
int WWScreen_GetMode( WWScreen s) { return (s->mode ); }
int WWScreen_GetDrawX( WWScreen s) { return (s->draw_x ); }
int WWScreen_GetDrawY( WWScreen s) { return (s->draw_y ); }
int WWScreen_GetDrawWidth( WWScreen s) { return (s->draw_width ); }
int WWScreen_GetDrawHeight(WWScreen s) { return (s->draw_height); }
int WWScreen_SetNumber(WWScreen s, int n) { return (s->number = n); }
int WWScreen_SetWidth( WWScreen s, int n) { return (s->width = n); }
int WWScreen_SetHeight(WWScreen s, int n) { return (s->height = n); }
int WWScreen_SetRollX( WWScreen s, int r) { return (s->roll_x = r); }
int WWScreen_SetRollY( WWScreen s, int r) { return (s->roll_y = r); }
int WWScreen_SetEnable(WWScreen s, int n) { return (s->enable = n); }
int WWScreen_SetMode( WWScreen s, int n) { return (s->mode = n); }
int WWScreen_SetDrawX( WWScreen s, int n) { return (s->draw_x = n); }
int WWScreen_SetDrawY( WWScreen s, int n) { return (s->draw_y = n); }
int WWScreen_SetDrawWidth( WWScreen s, int n) { return (s->draw_width = n); }
int WWScreen_SetDrawHeight(WWScreen s, int n) { return (s->draw_height = n); }
/* <20><><EFBFBD><EFBFBD>ޥåפο<D7A4>(0<><30>7)<29><><EFBFBD>֤<EFBFBD><><C6A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1<><31><EFBFBD>֤<EFBFBD>) */
int WWScreen_GetPixel(WWScreen screen, int x, int y)
{
@@ -133,9 +149,12 @@ int WWScreen_GetPixel(WWScreen screen, int x, int y)
return (pixel);
}
WWScreen WWScreen_Create(int number, int width, int height,
WWScreen WWScreen_Create(int number,
int width, int height,
WWPalette initial_palette,
WWCharacter initial_character)
WWCharacter initial_character,
int draw_x, int draw_y,
int draw_width, int draw_height)
{
WWScreen screen;
WWScreenCharacter sc;
@@ -150,6 +169,14 @@ WWScreen WWScreen_Create(int number, int width, int height,
WWScreen_SetRollX( screen, 0);
WWScreen_SetRollY( screen, 0);
WWScreen_SetEnable(screen, 1);
WWScreen_SetMode( screen, WWSCREEN_DRAW_ALL);
WWScreen_SetDrawX( screen, draw_x);
WWScreen_SetDrawY( screen, draw_y);
WWScreen_SetDrawWidth( screen, draw_width);
WWScreen_SetDrawHeight(screen, draw_height);
screen->screen_characters =
(WWScreenCharacter *)malloc(sizeof(WWScreenCharacter) *
screen->width * screen->height);

View File

@@ -16,37 +16,64 @@
typedef struct _WWScreen * WWScreen;
/*****************************************************************************/
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
#define WWSCREEN_DRAW_ALL 0
#define WWSCREEN_INSIDE_ONLY 1
#define WWSCREEN_OUTSIDE_ONLY 2
/*****************************************************************************/
/* <20><><EFBFBD><EFBFBD><EFBFBD>дؿ<D0B4><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
int WWScreen_GetNumber(WWScreen s);
int WWScreen_GetHorizontal(WWScreen s, int x, int y);
int WWScreen_GetVertical(WWScreen s, int x, int y);
WWPalette WWScreen_GetPalette(WWScreen s, int x, int y);
WWCharacter WWScreen_GetCharacter(WWScreen s, int x, int y);
int WWScreen_SetNumber(WWScreen s, int n);
int WWScreen_SetHorizontal(WWScreen s, int x, int y, int f);
int WWScreen_SetVertical(WWScreen s, int x, int y, int f);
WWPalette WWScreen_SetPalette(WWScreen s, int x, int y, WWPalette palette);
WWCharacter WWScreen_SetCharacter(WWScreen s, int x, int y, WWCharacter c);
int WWScreen_GetNumber(WWScreen s);
int WWScreen_GetWidth( WWScreen s);
int WWScreen_GetHeight(WWScreen s);
int WWScreen_GetRollX( WWScreen s);
int WWScreen_GetRollY( WWScreen s);
int WWScreen_GetEnable(WWScreen s);
int WWScreen_GetMode( WWScreen s);
int WWScreen_GetDrawX( WWScreen s);
int WWScreen_GetDrawY( WWScreen s);
int WWScreen_GetDrawWidth( WWScreen s);
int WWScreen_GetDrawHeight(WWScreen s);
int WWScreen_SetNumber(WWScreen s, int n);
int WWScreen_SetWidth( WWScreen s, int n);
int WWScreen_SetHeight(WWScreen s, int n);
int WWScreen_SetRollX( WWScreen s, int r);
int WWScreen_SetRollY( WWScreen s, int r);
int WWScreen_SetEnable(WWScreen s, int n);
int WWScreen_SetMode( WWScreen s, int n);
int WWScreen_SetDrawX( WWScreen s, int n);
int WWScreen_SetDrawY( WWScreen s, int n);
int WWScreen_SetDrawWidth( WWScreen s, int n);
int WWScreen_SetDrawHeight(WWScreen s, int n);
int WWScreen_GetPixel(WWScreen screen, int x, int y);
WWScreen WWScreen_Create(int number, int width, int height,
WWScreen WWScreen_Create(int number,
int width, int height,
WWPalette initial_palette,
WWCharacter initial_character);
WWCharacter initial_character,
int draw_x, int draw_y,
int draw_width, int draw_height);
WWScreen WWScreen_Destroy(WWScreen screen);
/*****************************************************************************/

View File

@@ -27,7 +27,19 @@ typedef struct _WWScreen {
int height;
int roll_x;
int roll_y;
WWScreenCharacter * screen_characters;
int enable; /* ɽ<><C9BD>/<2F><>ɽ<EFBFBD><C9BD><EFBFBD>Υե饰 */
int mode; /* ɽ<><C9BD><EFBFBD><EFBFBD><E2A1BC> */
/* WWSCREEN_DRAW_ALL, WWSCREEN_INSIDE_ONLY, WWSCREEN_OUTSIDE_ONLY <20><> */
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECA4AB><EFBFBD>ͤ<EFBFBD><CDA4><EFBFBD><EFBFBD><EFBFBD> */
/* ɽ<><C9BD><EFBFBD>ΰ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣲤Υ<F3A3B2A4><CEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɥ<EFBFBD><C9A5><EFBFBD>ǽ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣱤Ǥ<F3A3B1A4>̤<EFBFBD><CCA4><EFBFBD><EFBFBD>) */
int draw_x, draw_y;
int draw_width, draw_height;
} _WWScreen;
/*****************************************************************************/

86
disp.c
View File

@@ -17,31 +17,32 @@
void display_control(unsigned int flags)
{
WWDisplay ww_display;
printf("display_control(): flags = %ud, ", flags); fflush(stdout);
if (wonx_display == NULL) Wonx_Create();
WWDisplay_SetScreenEnable(WonxDisplay_GetWWDisplay(wonx_display),
SCREEN1,
(flags & DCM_SCR1) ? 1 : 0);
ww_display = WonxDisplay_GetWWDisplay(wonx_display);
WWDisplay_SetScreenEnable(WonxDisplay_GetWWDisplay(wonx_display),
SCREEN2,
(flags & DCM_SCR2) ? 1 : 0);
WWScreen_SetEnable(WWDisplay_GetScreen(ww_display, SCREEN1),
(flags & DCM_SCR1) ? 1 : 0);
WWDisplay_SetSpriteEnable(WonxDisplay_GetWWDisplay(wonx_display),
(flags & DCM_SPR) ? 1 : 0);
WWScreen_SetEnable(WWDisplay_GetScreen(ww_display, SCREEN2),
(flags & DCM_SCR2) ? 1 : 0);
WWDisplay_SetSpriteWindowEnable(WonxDisplay_GetWWDisplay(wonx_display),
(flags & DCM_SPR_WIN) ? 1 : 0);
WWDisplay_SetSpriteEnable(ww_display, (flags & DCM_SPR) ? 1 : 0);
WWDisplay_SetSpriteWindowEnable(ww_display, (flags & DCM_SPR_WIN) ? 1 : 0);
if ((flags & 0x0030) == DCM_SCR2_WIN_INSIDE)
WWDisplay_SetScreen2WindowMode(WonxDisplay_GetWWDisplay(wonx_display), 2);
WWScreen_SetMode(WWDisplay_GetScreen(ww_display, SCREEN2),
WWSCREEN_INSIDE_ONLY);
else if ((flags & 0x0030) == DCM_SCR2_WIN_OUTSIDE)
WWDisplay_SetScreen2WindowMode(WonxDisplay_GetWWDisplay(wonx_display), 3);
WWScreen_SetMode(WWDisplay_GetScreen(ww_display, SCREEN2),
WWSCREEN_OUTSIDE_ONLY);
WWDisplay_SetBorder(WonxDisplay_GetWWDisplay(wonx_display),
(flags & DCM_BORDER_COLOR) >> 7);
WWDisplay_SetBorder(ww_display, (flags & DCM_BORDER_COLOR) >> 7);
WonxDisplay_Flush(wonx_display);
@@ -52,20 +53,21 @@ void display_control(unsigned int flags)
unsigned int display_status()
{
WWDisplay ww_display;
unsigned short int ret;
printf("display_status(): "); fflush(stdout);
if (wonx_display == NULL) Wonx_Create();
ww_display = WonxDisplay_GetWWDisplay(wonx_display);
ret = 0;
if (WWDisplay_GetScreenEnable(WonxDisplay_GetWWDisplay(wonx_display),
SCREEN1))
if (WWScreen_GetEnable(WWDisplay_GetScreen(ww_display, SCREEN1)))
ret |= DCM_SCR1;
if (WWDisplay_GetScreenEnable(WonxDisplay_GetWWDisplay(wonx_display),
SCREEN2))
if (WWScreen_GetEnable(WWDisplay_GetScreen(ww_display, SCREEN2)))
ret |= DCM_SCR2;
if (WWDisplay_GetSpriteEnable(WonxDisplay_GetWWDisplay(wonx_display)))
@@ -74,12 +76,11 @@ unsigned int display_status()
if (WWDisplay_GetSpriteWindowEnable(WonxDisplay_GetWWDisplay(wonx_display)))
ret |= DCM_SPR_WIN;
switch
(WWDisplay_GetScreen2WindowMode(WonxDisplay_GetWWDisplay(wonx_display))) {
case 2:
switch (WWScreen_GetMode(WWDisplay_GetScreen(ww_display, SCREEN2))) {
case WWSCREEN_INSIDE_ONLY:
ret |= DCM_SCR2_WIN_INSIDE;
break;
case 3:
case WWSCREEN_OUTSIDE_ONLY:
ret |= DCM_SCR2_WIN_OUTSIDE;
break;
default:
@@ -94,8 +95,7 @@ unsigned int display_status()
return (ret);
}
void font_set_monodata(unsigned int number,
unsigned int count, void * data)
void font_set_monodata(unsigned int number, unsigned int count, void * data)
{
WWCharacter c;
int i, x, y, n, p;
@@ -669,18 +669,52 @@ unsigned int screen_get_scroll(int screen)
void screen2_set_window(int x, int y, int w, int h)
{
WWScreen s;
printf("screen2_set_window(): x = %d, y = %d, width = %d, height = %d, ",
x, y, w, h); fflush(stdout);
if (wonx_display == NULL) Wonx_Create();
/* <20><><EFBFBD>Ȥǽ񤯤<C7BD><F1A4AFA4><EFBFBD> */
s = WWDisplay_GetScreen(WonxDisplay_GetWWDisplay(wonx_display), SCREEN2);
WWScreen_SetDrawX(s, x);
WWScreen_SetDrawY(s, y);
WWScreen_SetDrawWidth( s, w);
WWScreen_SetDrawHeight(s, h);
WonxDisplay_Flush(wonx_display);
printf("return value = none\n"); fflush(stdout);
return;
}
unsigned long int screen2_get_window(void)
{
WWScreen s;
unsigned short int xy;
unsigned short int wh;
unsigned long int ret;
if (wonx_display == NULL) Wonx_Create();
/* <20><><EFBFBD>Ȥǽ񤯤<C7BD><F1A4AFA4><EFBFBD> */
printf("screen2_get_window(): "); fflush(stdout);
s = WWDisplay_GetScreen(WonxDisplay_GetWWDisplay(wonx_display), SCREEN2);
xy =
((WWScreen_GetDrawY(s) << 8) & 0xff00) |
(WWScreen_GetDrawX(s) & 0x00ff);
wh =
((WWScreen_GetDrawHeight(s) << 8) & 0xff00) |
(WWScreen_GetDrawWidth(s) & 0x00ff);
ret = ((unsigned long int)wh) << 16 | xy;
WonxDisplay_Flush(wonx_display);
printf("return value = %ul\n", ret); fflush(stdout);
return (ret);
}
void sprite_set_window(int x, int y, int w, int h)