Exemple #1
0
	void ClearScreen()
	{
		Memory::Set((uint64_t*) Kernel::GetFramebufferAddress(), 0x00, GetResX() * GetResY() * 4);
		Memory::Set((uint64_t*) Kernel::GetTrueLFBAddress(), 0x00, GetResX() * GetResY() * 4);
		VT_CursorX = 0;
		VT_CursorY = 0;
	}
Exemple #2
0
	void Initialise()
	{
		CharsPerLine = (GetResX() - OffsetLeft) / CharWidth - 1;
		CharsPerPage = CharsPerLine * (GetResY() / 16) - 1;
		CharsPerColumn = CharsPerPage / CharsPerLine;

		VT_DidInit = true;
	}
Exemple #3
0
// returns the boundaries of the currently visible 16x16 pixel blocks
SDL_Rect *Engine::GetVisibleBlockRect(void)
{
    uint32 posx = GetCamera().x < 0 ? 0 : GetCamera().x;
    uint32 posy = GetCamera().y < 0 ? 0 : GetCamera().y;
    _visibleBlockRect.x = posx / 16;
    _visibleBlockRect.y = posy / 16;
    _visibleBlockRect.w = ((GetResX() + posx) / 16) + 1;
    _visibleBlockRect.h = ((GetResY() + posy) / 16) + 1;
    return &_visibleBlockRect;
}
	void PutPixel(uint16_t x, uint16_t y, uint32_t Colour)
	{
		if(x < GetResX() && y < GetResY())
		{
			// Index = (x * width) + y
			uint32_t pos = y * GetResX() + x;
			pos *= 4;	// 4 bytes per pixel

			PutPixelAtAddr(pos, Colour);
		}
	}
Exemple #5
0
void Engine::InitScreen(uint32 sizex, uint32 sizey, uint8 bpp /* = 0 */, uint32 extraflags /* = 0 */)
{
    if(sizex == GetResX() && sizey == GetResY() && (!bpp || bpp == GetBPP()) && ((_screen->flags | extraflags) == _screen->flags))
        return; // no change, nothing to do

    if(_screen)
        SDL_FreeSurface(_screen);
    _screenFlags = SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_ANYFORMAT | SDL_HWACCEL | extraflags;
    _screen = SDL_SetVideoMode(sizex, sizey, bpp, _screenFlags);
    _screenFlags &= ~SDL_FULLSCREEN; // this depends on current setting and should not be stored

    _gcnGfx->setTarget(GetSurface());
}
Exemple #6
0
	void Scroll()
	{
		// asm volatile("cli");
		uint64_t x = GetResX(), y = GetResY();


		// copy up.
		Memory::Copy((void*) Kernel::GetFramebufferAddress(), (void*)(Kernel::GetFramebufferAddress() + (x * CharHeight * (BitsPerPixel / 8))), (x * y * (BitsPerPixel / 8)) - (x * CharHeight * (BitsPerPixel / 8)));

		// delete the last line.
		Memory::Set((void*)(Kernel::GetFramebufferAddress() + ((x * y * (BitsPerPixel / 8)) - (x * CharHeight * (BitsPerPixel / 8)))), 0x00, x * CharHeight * (BitsPerPixel / 8));

		// asm volatile("sti");
	}
Exemple #7
0
void Engine::SetResizable(bool b)
{
    if(b == IsResizable())
        return; // no change required

    uint32 flags = _screen->flags | _screenFlags;

    // toggle between fullscreen, preserving other flags
    if(b)
        flags |= SDL_RESIZABLE; // add resizable flag
    else
        flags &= ~SDL_RESIZABLE; // remove resizable flag

    InitScreen(GetResX(), GetResY(), GetBPP(), flags);
}
Exemple #8
0
void Engine::SetFullscreen(bool b)
{
    if(b == IsFullscreen())
        return; // no change required

    uint32 flags = _screen->flags | _screenFlags;

    // toggle between fullscreen, preserving other flags
    if(b)
        flags |= SDL_FULLSCREEN; // add fullscreen flag
    else
        flags &= ~SDL_FULLSCREEN; // remove fullscreen flag

    InitScreen(GetResX(), GetResY(), GetBPP(), flags);
}