Fix BG/SPPAGE
This commit is contained in:
@@ -1428,11 +1428,11 @@ class BuiltinFunction
|
|||||||
{
|
{
|
||||||
throw new OutOfRange("SPPAGE", 1);
|
throw new OutOfRange("SPPAGE", 1);
|
||||||
}
|
}
|
||||||
p.sprite.sppage = page;
|
p.sprite.sppage[p.displaynum] = page;
|
||||||
}
|
}
|
||||||
static int SPPAGE(PetitComputer p)
|
static int SPPAGE(PetitComputer p)
|
||||||
{
|
{
|
||||||
return p.sprite.sppage;
|
return p.sprite.sppage[p.displaynum];
|
||||||
}
|
}
|
||||||
static void SPCLIP(PetitComputer p)
|
static void SPCLIP(PetitComputer p)
|
||||||
{
|
{
|
||||||
@@ -1668,11 +1668,11 @@ class BuiltinFunction
|
|||||||
{
|
{
|
||||||
throw new OutOfRange("BGPAGE", 1);
|
throw new OutOfRange("BGPAGE", 1);
|
||||||
}
|
}
|
||||||
p.bgpage = page;
|
p.bgpage[p.displaynum] = page;
|
||||||
}
|
}
|
||||||
static int BGPAGE(PetitComputer p)
|
static int BGPAGE(PetitComputer p)
|
||||||
{
|
{
|
||||||
return p.bgpage;
|
return p.bgpage[p.displaynum];
|
||||||
}
|
}
|
||||||
static void BGSHOW(PetitComputer p, int layer)
|
static void BGSHOW(PetitComputer p, int layer)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ class PetitComputer
|
|||||||
this.y = y;
|
this.y = y;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int bgpage;
|
int[2] bgpage;
|
||||||
Projects project;
|
Projects project;
|
||||||
wstring currentProject;
|
wstring currentProject;
|
||||||
void init()
|
void init()
|
||||||
@@ -506,8 +506,8 @@ class PetitComputer
|
|||||||
DerelictSDL2.load();
|
DerelictSDL2.load();
|
||||||
DerelictSDL2Image.load();
|
DerelictSDL2Image.load();
|
||||||
graphic.initGraphicPages();
|
graphic.initGraphicPages();
|
||||||
sprite.sppage = 4;
|
sprite.sppage[] = 4;
|
||||||
bgpage = 5;
|
bgpage[] = 5;
|
||||||
SDL_Init(SDL_INIT_VIDEO);
|
SDL_Init(SDL_INIT_VIDEO);
|
||||||
|
|
||||||
DerelictGL.load();
|
DerelictGL.load();
|
||||||
@@ -650,11 +650,11 @@ class PetitComputer
|
|||||||
}
|
}
|
||||||
version(test) glLoadIdentity();
|
version(test) glLoadIdentity();
|
||||||
version(test) glRotatef(rot_test_deg, rot_test_x, rot_test_y, rot_test_z);
|
version(test) glRotatef(rot_test_deg, rot_test_x, rot_test_y, rot_test_z);
|
||||||
glBindTexture(GL_TEXTURE_2D, graphic.GRP[bgpage].glTexture);
|
|
||||||
|
|
||||||
if (BGvisibles[0])
|
if (BGvisibles[0])
|
||||||
{
|
{
|
||||||
chRenderingDisplay(0);
|
chRenderingDisplay(0);
|
||||||
|
glBindTexture(GL_TEXTURE_2D, graphic.GRP[bgpage[0]].glTexture);
|
||||||
for(int i = 0; i < bgmax; i++)
|
for(int i = 0; i < bgmax; i++)
|
||||||
{
|
{
|
||||||
bg[i].render(0, currentDisplay.rect[0].w, currentDisplay.rect[0].h);
|
bg[i].render(0, currentDisplay.rect[0].w, currentDisplay.rect[0].h);
|
||||||
@@ -663,6 +663,7 @@ class PetitComputer
|
|||||||
if(currentDisplay.rect.length > 1 && BGvisibles[1])
|
if(currentDisplay.rect.length > 1 && BGvisibles[1])
|
||||||
{
|
{
|
||||||
chRenderingDisplay(1);
|
chRenderingDisplay(1);
|
||||||
|
glBindTexture(GL_TEXTURE_2D, graphic.GRP[bgpage[0]].glTexture);
|
||||||
for(int i = bgmax; i < bg.length; i++)
|
for(int i = bgmax; i < bg.length; i++)
|
||||||
{
|
{
|
||||||
bg[i].render(1, currentDisplay.rect[1].w, currentDisplay.rect[1].h);
|
bg[i].render(1, currentDisplay.rect[1].w, currentDisplay.rect[1].h);
|
||||||
|
|||||||
@@ -584,7 +584,7 @@ class Sprite
|
|||||||
SpriteBucket[] buckets;
|
SpriteBucket[] buckets;
|
||||||
SpriteBucket* listptr;
|
SpriteBucket* listptr;
|
||||||
SpriteBucket* bucketsptr;
|
SpriteBucket* bucketsptr;
|
||||||
int sppage;
|
int[2] sppage;
|
||||||
void render()
|
void render()
|
||||||
{
|
{
|
||||||
if ((!visibles[0] && !visibles[1]) || (petitcom.xscreenmode == 2 && !visibles[0]))
|
if ((!visibles[0] && !visibles[1]) || (petitcom.xscreenmode == 2 && !visibles[0]))
|
||||||
@@ -672,7 +672,7 @@ class Sprite
|
|||||||
dish2 = 480f;
|
dish2 = 480f;
|
||||||
dis = -1;
|
dis = -1;
|
||||||
}
|
}
|
||||||
auto texture = petitcom.graphic.GRP[sppage].glTexture;
|
auto texture = petitcom.graphic.GRP[sppage[0]].glTexture;
|
||||||
float aspect = disw2 / dish2;
|
float aspect = disw2 / dish2;
|
||||||
float z = -0.01f;
|
float z = -0.01f;
|
||||||
int spmax = petitcom.xscreenmode == 1 ? this.spmax : 512;//XSCREENが2,3じゃないと下画面は描画しない
|
int spmax = petitcom.xscreenmode == 1 ? this.spmax : 512;//XSCREENが2,3じゃないと下画面は描画しない
|
||||||
@@ -702,6 +702,8 @@ class Sprite
|
|||||||
disw2 = petitcom.currentDisplay.rect[1].w;
|
disw2 = petitcom.currentDisplay.rect[1].w;
|
||||||
petitcom.chRenderingDisplay(1, clipRect[1].x, clipRect[1].y, clipRect[1].w, clipRect[1].h);
|
petitcom.chRenderingDisplay(1, clipRect[1].x, clipRect[1].y, clipRect[1].w, clipRect[1].h);
|
||||||
aspect = disw2 / dish2;
|
aspect = disw2 / dish2;
|
||||||
|
texture = petitcom.graphic.GRP[sppage[1]].glTexture;
|
||||||
|
glBindTexture(GL_TEXTURE_2D, texture);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -714,6 +716,8 @@ class Sprite
|
|||||||
disw2 = petitcom.currentDisplay.rect[0].w;
|
disw2 = petitcom.currentDisplay.rect[0].w;
|
||||||
petitcom.chRenderingDisplay(0, clipRect[0].x, clipRect[0].y, clipRect[0].w, clipRect[0].h);
|
petitcom.chRenderingDisplay(0, clipRect[0].x, clipRect[0].y, clipRect[0].w, clipRect[0].h);
|
||||||
aspect = disw2 / dish2;
|
aspect = disw2 / dish2;
|
||||||
|
texture = petitcom.graphic.GRP[sppage[0]].glTexture;
|
||||||
|
glBindTexture(GL_TEXTURE_2D, texture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!visibles[dis])
|
if (!visibles[dis])
|
||||||
|
|||||||
Reference in New Issue
Block a user