描画の頻度を下げた
This commit is contained in:
@@ -405,45 +405,26 @@ class PetitComputer
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
||||||
|
|
||||||
window = SDL_CreateWindow("SMILEBASIC", SDL_WINDOWPOS_UNDEFINED,
|
window = SDL_CreateWindow("SMILEBASIC", SDL_WINDOWPOS_UNDEFINED,
|
||||||
SDL_WINDOWPOS_UNDEFINED, 400, 240,
|
SDL_WINDOWPOS_UNDEFINED, 400, 240,
|
||||||
/*SDL_WINDOW_SHOWN | */SDL_WINDOW_OPENGL);
|
SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);
|
||||||
renderer = SDL_CreateRenderer(window, -1, 0);
|
renderer = SDL_CreateRenderer(window, -1, 0);
|
||||||
/*for(int i = 0; i < GRPFColor.length; i++)
|
|
||||||
{
|
|
||||||
GRPFColor[i].createTexture(renderer);
|
|
||||||
}*/
|
|
||||||
t8x8 = SDL_CreateTextureFromSurface(renderer, s8x8);
|
|
||||||
write("OK!");
|
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
SDL_GLContext context;
|
SDL_GLContext context;
|
||||||
context = SDL_GL_CreateContext(window);
|
context = SDL_GL_CreateContext(window);
|
||||||
GRPF.createTexture(renderer);
|
|
||||||
if (!context) return;
|
if (!context) return;
|
||||||
|
GRPF.createTexture(renderer);
|
||||||
glViewport(0, 0, 400, 240);
|
glViewport(0, 0, 400, 240);
|
||||||
glClearColor(0.0f, 1.0f, 0.0f, 0.0f);
|
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
auto profile = SDL_GetTicks();
|
auto profile = SDL_GetTicks();
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
GLenum aa = glGetError();
|
|
||||||
//glBindTexture( GL_TEXTURE_2D, GRPF.glTexture );
|
|
||||||
aa = glGetError();
|
|
||||||
renderConsoleGL();
|
renderConsoleGL();
|
||||||
/*
|
|
||||||
glBegin(GL_QUADS);
|
|
||||||
glTexCoord2f(1-0 , 1-0); glVertex2f(512/200f - 1, 1 - 512/120f);
|
|
||||||
glTexCoord2f(1-0 , 1-1); glVertex2f(512/200f - 1, 1);
|
|
||||||
glTexCoord2f(1-1 , 1-1); glVertex2f(-1, 1);
|
|
||||||
glTexCoord2f(1-1 , 1-0); glVertex2f(-1, 1 - 512/120f);
|
|
||||||
glEnd(); glFlush();*/
|
|
||||||
SDL_GL_SwapWindow(window);
|
SDL_GL_SwapWindow(window);
|
||||||
auto a = (SDL_GetTicks() - profile);
|
auto renderticks = (SDL_GetTicks() - profile);
|
||||||
|
if(!renderprofile) writeln(renderticks);
|
||||||
if(!renderprofile) writeln(a);
|
|
||||||
while (SDL_PollEvent(&event))
|
while (SDL_PollEvent(&event))
|
||||||
{
|
{
|
||||||
switch (event.type)
|
switch (event.type)
|
||||||
@@ -461,34 +442,9 @@ class PetitComputer
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
continue;
|
long delay = (1000/60) - cast(long)(SDL_GetTicks() - profile);
|
||||||
version(none)
|
if(delay > 0)
|
||||||
{
|
SDL_Delay(cast(uint)delay);
|
||||||
auto profile = SDL_GetTicks();
|
|
||||||
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
|
|
||||||
SDL_RenderClear(renderer);
|
|
||||||
renderConsole;
|
|
||||||
SDL_RenderPresent(renderer);
|
|
||||||
auto a = (SDL_GetTicks() - profile);
|
|
||||||
while (SDL_PollEvent(&event))
|
|
||||||
{
|
|
||||||
switch (event.type)
|
|
||||||
{
|
|
||||||
case SDL_QUIT:
|
|
||||||
SDL_DestroyWindow(window);
|
|
||||||
SDL_Quit();
|
|
||||||
return;
|
|
||||||
case SDL_KEYDOWN:
|
|
||||||
auto key = event.key.keysym.sym;
|
|
||||||
keybuffer[keybufferpos] = cast(wchar)key;
|
|
||||||
keybufferpos = (keybufferpos + 1) % keybuffer.length;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!renderprofile) writeln(a);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(Throwable t)
|
catch(Throwable t)
|
||||||
|
|||||||
Reference in New Issue
Block a user