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.console
import tcod.context import tcod.context
import tcod.ecs import tcod.ecs
import tcod.tileset
import tcod.sdl.render
import tcod.render
from game.screens import Screen from game.screens import Screen
from game.components import Position from game.components import Position
@ -20,3 +23,18 @@ screens: list[Screen] = []
console: tcod.console.Console console: tcod.console.Console
"""The current main 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 return
g.console.clear() g.console.clear()
g.screens[-1].on_draw(g.console) 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: 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: def main() -> None:
"""Entry point function.""" """Entry point function."""
tileset = game.tilesetmanager.valid_tileset() g.tileset = game.tilesetmanager.valid_tileset()
#tcod.tileset.procedural_block_elements(tileset=tileset) #tcod.tileset.procedural_block_elements(tileset=tileset)
g.screens = [MainMenu()] g.screens = [MainMenu()]
g.console = tcod.console.Console(80, 35) 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() game.screens.main_loop()