renderer implemented

This commit is contained in:
staubsauger 2024-08-19 09:47:10 +02:00
parent 19879317c1
commit 91b4711ee9
3 changed files with 34 additions and 4 deletions

18
g.py
View file

@ -5,6 +5,9 @@ from __future__ import annotations
import tcod.console
import tcod.context
import tcod.ecs
import tcod.tileset
import tcod.sdl.render
import tcod.render
from game.screens import Screen
from game.components import Position
@ -20,3 +23,18 @@ screens: list[Screen] = []
console: tcod.console.Console
"""The current main console."""
tileset: tcod.tileset.Tileset
"""The tileset to use"""
sdl_window: tcod.sdl.video.Window
"""The SDL window"""
sdl_renderer: tcod.sdl.render.Renderer
"""The SDL renderer"""
atlas: tcod.render.SDLTilesetAtlas
"""The tileset atlas"""
console_reder: tcod.render.SDLConsoleRender
"""The console renderer"""

View file

@ -52,7 +52,9 @@ def main_draw() -> None:
return
g.console.clear()
g.screens[-1].on_draw(g.console)
g.context.present(g.console)
# g.context.present(g.console)
g.sdl_renderer.copy(g.console_reder.render(g.console))
g.sdl_renderer.present()
def _apply_screen_result(result: ScreenResult) -> None:

16
main.py
View file

@ -14,13 +14,23 @@ from game.screens.menu_screens import MainMenu
def main() -> None:
"""Entry point function."""
tileset = game.tilesetmanager.valid_tileset()
g.tileset = game.tilesetmanager.valid_tileset()
#tcod.tileset.procedural_block_elements(tileset=tileset)
g.screens = [MainMenu()]
g.console = tcod.console.Console(80, 35)
with tcod.context.new(console=g.console, tileset=tileset) as g.context:
g.sdl_window = tcod.sdl.video.new_window(
g.console.width * g.tileset.tile_width,
g.console.height * g.tileset.tile_height,
flags=tcod.lib.SDL_WINDOW_RESIZABLE,
)
g.sdl_renderer = tcod.sdl.render.new_renderer(g.sdl_window, target_textures=True)
g.atlas = tcod.render.SDLTilesetAtlas(g.sdl_renderer, g.tileset)
g.console_reder = tcod.render.SDLConsoleRender(atlas=g.atlas)
with tcod.context.new(console=g.console, tileset=g.tileset) as g.context:
game.screens.main_loop()