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
This commit is contained in:
parent
3c624a304e
commit
1d5ebf4867
16
HISTORY
16
HISTORY
@ -0,0 +1,16 @@
|
||||
2000/9/27(水)
|
||||
|
||||
Wonx-a02 公開
|
||||
|
||||
テキスト表示関連の関数を実行したときに,(あいかわらず文字は表示されないが)
|
||||
せめてターミナルに文字列を出力するようにした.
|
||||
|
||||
スクリーン2のウインドウ機能を実装した.
|
||||
|
||||
|
||||
|
||||
|
||||
2000/9/26(火)
|
||||
|
||||
Wonx-a01 公開
|
||||
|
||||
4
Makefile
4
Makefile
@ -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
|
||||
|
||||
|
||||
46
WWDisplay.c
46
WWDisplay.c
@ -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);
|
||||
|
||||
/* 以下はホットスポットになるので,そのうちループアンローリング */
|
||||
/* したほうがいいかも */
|
||||
|
||||
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);
|
||||
|
||||
/* Æ©ÌÀ¿§¤Î¾ì¹ç */
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -21,14 +21,9 @@ typedef struct _WWDisplay {
|
||||
WWLCDPanel lcd_panel;
|
||||
|
||||
/* ディスプレイの属性情報 */
|
||||
int screen_enable[2]; /* スクリーン表示イネーブルフラグ */
|
||||
int sprite_enable; /* スプライト表示イネーブルフラグ */
|
||||
int sprite_window_enable; /* スプライトウインドウ機能イネーブルフラグ */
|
||||
|
||||
/* スクリーン2ウインドウモード */
|
||||
/* 0,1... 無効 2...ウインドウの内側を表示 3...ウインドウの外側を表示 */
|
||||
int screen2_window_mode;
|
||||
|
||||
int border; /* ボーダーカラー.0~7のカラーマップ番号 */
|
||||
|
||||
int foreground_color; /* モノクロフォント展開時の色 */
|
||||
|
||||
35
WWScreen.c
35
WWScreen.c
@ -73,7 +73,6 @@ static WWScreenCharacter WWScreen_SetScreenCharacter(WWScreen s, int x, int y,
|
||||
/* パブリックなもの */
|
||||
/*===========================================================================*/
|
||||
|
||||
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); }
|
||||
|
||||
/* カラーマップの色(0~7)を返す(透明色は-1を返す) */
|
||||
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);
|
||||
|
||||
35
WWScreen.h
35
WWScreen.h
@ -16,37 +16,64 @@
|
||||
|
||||
typedef struct _WWScreen * WWScreen;
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Äê¿ô¤ÎÄêµÁ */
|
||||
/*****************************************************************************/
|
||||
|
||||
#define WWSCREEN_DRAW_ALL 0
|
||||
#define WWSCREEN_INSIDE_ONLY 1
|
||||
#define WWSCREEN_OUTSIDE_ONLY 2
|
||||
|
||||
/*****************************************************************************/
|
||||
/* ¥á¥ó¥Ð´Ø¿ô¤ÎÀë¸À */
|
||||
/*****************************************************************************/
|
||||
|
||||
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);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
12
WWScreenP.h
12
WWScreenP.h
@ -27,7 +27,19 @@ typedef struct _WWScreen {
|
||||
int height;
|
||||
int roll_x;
|
||||
int roll_y;
|
||||
|
||||
WWScreenCharacter * screen_characters;
|
||||
|
||||
int enable; /* 表示/非表示のフラグ */
|
||||
|
||||
int mode; /* 表示モード */
|
||||
/* WWSCREEN_DRAW_ALL, WWSCREEN_INSIDE_ONLY, WWSCREEN_OUTSIDE_ONLY の */
|
||||
/* いずれかの値を取る */
|
||||
|
||||
/* 表示領域(スクリーン2のウインドウ機能用.スクリーン1では未使用) */
|
||||
int draw_x, draw_y;
|
||||
int draw_width, draw_height;
|
||||
|
||||
} _WWScreen;
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
82
disp.c
82
disp.c
@ -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,
|
||||
ww_display = WonxDisplay_GetWWDisplay(wonx_display);
|
||||
|
||||
WWScreen_SetEnable(WWDisplay_GetScreen(ww_display, SCREEN1),
|
||||
(flags & DCM_SCR1) ? 1 : 0);
|
||||
|
||||
WWDisplay_SetScreenEnable(WonxDisplay_GetWWDisplay(wonx_display),
|
||||
SCREEN2,
|
||||
WWScreen_SetEnable(WWDisplay_GetScreen(ww_display, SCREEN2),
|
||||
(flags & DCM_SCR2) ? 1 : 0);
|
||||
|
||||
WWDisplay_SetSpriteEnable(WonxDisplay_GetWWDisplay(wonx_display),
|
||||
(flags & DCM_SPR) ? 1 : 0);
|
||||
WWDisplay_SetSpriteEnable(ww_display, (flags & DCM_SPR) ? 1 : 0);
|
||||
|
||||
WWDisplay_SetSpriteWindowEnable(WonxDisplay_GetWWDisplay(wonx_display),
|
||||
(flags & DCM_SPR_WIN) ? 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();
|
||||
/* あとで書くこと */
|
||||
|
||||
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();
|
||||
/* あとで書くこと */
|
||||
|
||||
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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user