diff --git a/ROADMAP.txt b/ROADMAP.txt index 16fb3a6..3a242f4 100644 --- a/ROADMAP.txt +++ b/ROADMAP.txt @@ -1,37 +1,31 @@ ------------ Tyra's v2.0 roadmap to publish on GitHub ------------ - -- [Tutorials] 5. Manual rendering via staticPipeline - via Render3DBag (core.render()), render simple poly, -explain that this is lower-level abstract rendering, it have the all the features as Mesh rendering, -because Mesh rendering uses only core.render() - -- [Tutorials] 6. Animation in Mesh rendering, explain the API - -- [Tutorials] 7. Directional lights in Mesh rendering - -- [Tutorials] 8. Render skybox, and show that stdPipOptions.noClipChecks must be set to false, to turn on clip algorithms (prevent glitches) - -- audio -- own game -- how to cook audio,textures,obj -- usb - +- [Tutorials] 5 +- [Tutorials] 6 +- [Tutorials] 7 +- [Tutorials] 8 +- [Tutorials] 9. +- [Renderer] Check ee clipping on de_dust2, add decimate to de_dust2? - [General] Check all left TODOs -> Github issues - - [General] Readme Credits: clipping, obj loader +- [Video] How to setup environment +- [Video] How to work with Tyra +- [Video] How to create own game +- [Video] How to cook assets (audio, textures, obj) +- [Video] Tutorial videos +- [Video] How to run game from USB ------------ Github issues for Tyra v2 ------------ -- [Demo] porzadek z konstruktorami bbox -- [General] smart pointers and std::array instead of raw pointers +- [Demo] BBox constructors +- [General] Add cpp lint checker in GitHub / static code analysis +- [General] Smart pointers and std::array instead of raw pointers +- [General] Control generated id to avoid duplication. Maybe Just increment from 0? Add interface IIdentificable? - [renderer] fog - [General] CI in Github via docker image -- [md2] refactor +- [MD2] Refactor - [2D] Add zbuffer support (z-index) - [3DUtility] Add zbuffer support (z-index) - [2D] Fixed font support - [File] Async file loading -- [obj] Add multicolor support to obj - [tyrdat] Custom 3D data file with precalculated bboxes with support of async loading -- [Renderer] Interlacing, a potem resolution 640x448 -- [General] Add cpp lint checker in GitHub -- [General] Control generated id to avoid duplication. Maybe Just increment from 0? Add interface IIdentificable? +- [Renderer] Interlacing, and then 640x448 resolution diff --git a/tutorials/05-animation/Makefile b/tutorials/05-animation/Makefile new file mode 100644 index 0000000..99a258e --- /dev/null +++ b/tutorials/05-animation/Makefile @@ -0,0 +1,24 @@ +TARGET := tutorial_05.elf +ENGINEDIR := ../../engine + +#The Directories, Source, Includes, Objects, Binary and Resources +SRCDIR := src +INCDIR := inc +BUILDDIR := obj +TARGETDIR := bin +RESDIR := res +SRCEXT := cpp +VSMEXT := vsm +VCLEXT := vcl +VCLPPEXT := vclpp +DEPEXT := d +OBJEXT := o + +#Flags, Libraries and Includes +CFLAGS := +LIB := +LIBDIRS := +INC := -I$(INCDIR) +INCDEP := -I$(INCDIR) + +include ../Makefile.tutorials-base \ No newline at end of file diff --git a/tutorials/05-animation/bin/.gitignore b/tutorials/05-animation/bin/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/05-animation/bin/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/05-animation/inc/tutorial_05.hpp b/tutorials/05-animation/inc/tutorial_05.hpp new file mode 100644 index 0000000..60a6289 --- /dev/null +++ b/tutorials/05-animation/inc/tutorial_05.hpp @@ -0,0 +1,29 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#pragma once + +#include + +namespace Tyra { + +class Tutorial05 : public Game { + public: + Tutorial05(Engine* engine); + ~Tutorial05(); + + void init(); + void loop(); + + private: + Engine* engine; +}; + +} // namespace Tyra diff --git a/tutorials/05-animation/obj/.gitignore b/tutorials/05-animation/obj/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/05-animation/obj/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/05-animation/res/.gitignore b/tutorials/05-animation/res/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/05-animation/res/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/05-animation/run.ps1 b/tutorials/05-animation/run.ps1 new file mode 100644 index 0000000..74646cc --- /dev/null +++ b/tutorials/05-animation/run.ps1 @@ -0,0 +1,4 @@ +$ConfigFile = Join-Path $PSScriptRoot '../../windows-pcsx2.ps1' +. $ConfigFile + +RunPCSX2 diff --git a/tutorials/05-animation/src/main.cpp b/tutorials/05-animation/src/main.cpp new file mode 100644 index 0000000..6b44dba --- /dev/null +++ b/tutorials/05-animation/src/main.cpp @@ -0,0 +1,26 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#include "engine.hpp" +#include "tutorial_05.hpp" + +/** + * In this tutorial we will learn: + * - What is a DynamicMesh and DynamicPipeline + * - How to load animated model from .obj and .md2 format + * - How to arrange animation keyframes + */ + +int main() { + Tyra::Engine engine; + Tyra::Tutorial05 game(&engine); + engine.run(&game); + return 0; +} diff --git a/tutorials/05-animation/src/tutorial_05.cpp b/tutorials/05-animation/src/tutorial_05.cpp new file mode 100644 index 0000000..3eb49b6 --- /dev/null +++ b/tutorials/05-animation/src/tutorial_05.cpp @@ -0,0 +1,24 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#include +#include "tutorial_05.hpp" + +namespace Tyra { + +Tutorial05::Tutorial05(Engine* t_engine) : engine(t_engine) {} + +Tutorial05::~Tutorial05() {} + +void Tutorial05::init() {} + +void Tutorial05::loop() {} + +} // namespace Tyra diff --git a/tutorials/06-audio/Makefile b/tutorials/06-audio/Makefile new file mode 100644 index 0000000..6b12b6f --- /dev/null +++ b/tutorials/06-audio/Makefile @@ -0,0 +1,24 @@ +TARGET := tutorial_06.elf +ENGINEDIR := ../../engine + +#The Directories, Source, Includes, Objects, Binary and Resources +SRCDIR := src +INCDIR := inc +BUILDDIR := obj +TARGETDIR := bin +RESDIR := res +SRCEXT := cpp +VSMEXT := vsm +VCLEXT := vcl +VCLPPEXT := vclpp +DEPEXT := d +OBJEXT := o + +#Flags, Libraries and Includes +CFLAGS := +LIB := +LIBDIRS := +INC := -I$(INCDIR) +INCDEP := -I$(INCDIR) + +include ../Makefile.tutorials-base \ No newline at end of file diff --git a/tutorials/06-audio/bin/.gitignore b/tutorials/06-audio/bin/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/06-audio/bin/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/06-audio/inc/tutorial_06.hpp b/tutorials/06-audio/inc/tutorial_06.hpp new file mode 100644 index 0000000..6082c44 --- /dev/null +++ b/tutorials/06-audio/inc/tutorial_06.hpp @@ -0,0 +1,29 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#pragma once + +#include + +namespace Tyra { + +class Tutorial06 : public Game { + public: + Tutorial06(Engine* engine); + ~Tutorial06(); + + void init(); + void loop(); + + private: + Engine* engine; +}; + +} // namespace Tyra diff --git a/tutorials/06-audio/obj/.gitignore b/tutorials/06-audio/obj/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/06-audio/obj/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/06-audio/res/.gitignore b/tutorials/06-audio/res/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/06-audio/res/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/06-audio/run.ps1 b/tutorials/06-audio/run.ps1 new file mode 100644 index 0000000..74646cc --- /dev/null +++ b/tutorials/06-audio/run.ps1 @@ -0,0 +1,4 @@ +$ConfigFile = Join-Path $PSScriptRoot '../../windows-pcsx2.ps1' +. $ConfigFile + +RunPCSX2 diff --git a/tutorials/06-audio/src/main.cpp b/tutorials/06-audio/src/main.cpp new file mode 100644 index 0000000..9676bf6 --- /dev/null +++ b/tutorials/06-audio/src/main.cpp @@ -0,0 +1,25 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#include "engine.hpp" +#include "tutorial_06.hpp" + +/** + * In this tutorial we will learn: + * - How to play background music + * - How to play sound effects (ADPCM samples) + */ + +int main() { + Tyra::Engine engine; + Tyra::Tutorial06 game(&engine); + engine.run(&game); + return 0; +} diff --git a/tutorials/06-audio/src/tutorial_06.cpp b/tutorials/06-audio/src/tutorial_06.cpp new file mode 100644 index 0000000..fd166d5 --- /dev/null +++ b/tutorials/06-audio/src/tutorial_06.cpp @@ -0,0 +1,24 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#include +#include "tutorial_06.hpp" + +namespace Tyra { + +Tutorial06::Tutorial06(Engine* t_engine) : engine(t_engine) {} + +Tutorial06::~Tutorial06() {} + +void Tutorial06::init() {} + +void Tutorial06::loop() {} + +} // namespace Tyra diff --git a/tutorials/07-lighting/Makefile b/tutorials/07-lighting/Makefile new file mode 100644 index 0000000..00b8b0a --- /dev/null +++ b/tutorials/07-lighting/Makefile @@ -0,0 +1,24 @@ +TARGET := tutorial_07.elf +ENGINEDIR := ../../engine + +#The Directories, Source, Includes, Objects, Binary and Resources +SRCDIR := src +INCDIR := inc +BUILDDIR := obj +TARGETDIR := bin +RESDIR := res +SRCEXT := cpp +VSMEXT := vsm +VCLEXT := vcl +VCLPPEXT := vclpp +DEPEXT := d +OBJEXT := o + +#Flags, Libraries and Includes +CFLAGS := +LIB := +LIBDIRS := +INC := -I$(INCDIR) +INCDEP := -I$(INCDIR) + +include ../Makefile.tutorials-base \ No newline at end of file diff --git a/tutorials/07-lighting/bin/.gitignore b/tutorials/07-lighting/bin/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/07-lighting/bin/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/07-lighting/inc/tutorial_07.hpp b/tutorials/07-lighting/inc/tutorial_07.hpp new file mode 100644 index 0000000..b3e9639 --- /dev/null +++ b/tutorials/07-lighting/inc/tutorial_07.hpp @@ -0,0 +1,29 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#pragma once + +#include + +namespace Tyra { + +class Tutorial07 : public Game { + public: + Tutorial07(Engine* engine); + ~Tutorial07(); + + void init(); + void loop(); + + private: + Engine* engine; +}; + +} // namespace Tyra diff --git a/tutorials/07-lighting/obj/.gitignore b/tutorials/07-lighting/obj/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/07-lighting/obj/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/07-lighting/res/.gitignore b/tutorials/07-lighting/res/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/07-lighting/res/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/07-lighting/run.ps1 b/tutorials/07-lighting/run.ps1 new file mode 100644 index 0000000..74646cc --- /dev/null +++ b/tutorials/07-lighting/run.ps1 @@ -0,0 +1,4 @@ +$ConfigFile = Join-Path $PSScriptRoot '../../windows-pcsx2.ps1' +. $ConfigFile + +RunPCSX2 diff --git a/tutorials/07-lighting/src/main.cpp b/tutorials/07-lighting/src/main.cpp new file mode 100644 index 0000000..8c21953 --- /dev/null +++ b/tutorials/07-lighting/src/main.cpp @@ -0,0 +1,25 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#include "engine.hpp" +#include "tutorial_07.hpp" + +/** + * In this tutorial we will learn: + * - How to add directional lights to mesh + * - How to add lightmap to mesh + */ + +int main() { + Tyra::Engine engine; + Tyra::Tutorial07 game(&engine); + engine.run(&game); + return 0; +} diff --git a/tutorials/07-lighting/src/tutorial_07.cpp b/tutorials/07-lighting/src/tutorial_07.cpp new file mode 100644 index 0000000..2878ccc --- /dev/null +++ b/tutorials/07-lighting/src/tutorial_07.cpp @@ -0,0 +1,24 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#include +#include "tutorial_07.hpp" + +namespace Tyra { + +Tutorial07::Tutorial07(Engine* t_engine) : engine(t_engine) {} + +Tutorial07::~Tutorial07() {} + +void Tutorial07::init() {} + +void Tutorial07::loop() {} + +} // namespace Tyra diff --git a/tutorials/08-skybox-debug/Makefile b/tutorials/08-skybox-debug/Makefile new file mode 100644 index 0000000..6560bb4 --- /dev/null +++ b/tutorials/08-skybox-debug/Makefile @@ -0,0 +1,24 @@ +TARGET := tutorial_08.elf +ENGINEDIR := ../../engine + +#The Directories, Source, Includes, Objects, Binary and Resources +SRCDIR := src +INCDIR := inc +BUILDDIR := obj +TARGETDIR := bin +RESDIR := res +SRCEXT := cpp +VSMEXT := vsm +VCLEXT := vcl +VCLPPEXT := vclpp +DEPEXT := d +OBJEXT := o + +#Flags, Libraries and Includes +CFLAGS := +LIB := +LIBDIRS := +INC := -I$(INCDIR) +INCDEP := -I$(INCDIR) + +include ../Makefile.tutorials-base \ No newline at end of file diff --git a/tutorials/08-skybox-debug/bin/.gitignore b/tutorials/08-skybox-debug/bin/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/08-skybox-debug/bin/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/08-skybox-debug/inc/tutorial_08.hpp b/tutorials/08-skybox-debug/inc/tutorial_08.hpp new file mode 100644 index 0000000..51c83d3 --- /dev/null +++ b/tutorials/08-skybox-debug/inc/tutorial_08.hpp @@ -0,0 +1,29 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#pragma once + +#include + +namespace Tyra { + +class Tutorial08 : public Game { + public: + Tutorial08(Engine* engine); + ~Tutorial08(); + + void init(); + void loop(); + + private: + Engine* engine; +}; + +} // namespace Tyra diff --git a/tutorials/08-skybox-debug/obj/.gitignore b/tutorials/08-skybox-debug/obj/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/08-skybox-debug/obj/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/08-skybox-debug/res/.gitignore b/tutorials/08-skybox-debug/res/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/08-skybox-debug/res/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/08-skybox-debug/run.ps1 b/tutorials/08-skybox-debug/run.ps1 new file mode 100644 index 0000000..74646cc --- /dev/null +++ b/tutorials/08-skybox-debug/run.ps1 @@ -0,0 +1,4 @@ +$ConfigFile = Join-Path $PSScriptRoot '../../windows-pcsx2.ps1' +. $ConfigFile + +RunPCSX2 diff --git a/tutorials/08-skybox-debug/src/main.cpp b/tutorials/08-skybox-debug/src/main.cpp new file mode 100644 index 0000000..d1eff22 --- /dev/null +++ b/tutorials/08-skybox-debug/src/main.cpp @@ -0,0 +1,25 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#include "engine.hpp" +#include "tutorial_08.hpp" + +/** + * In this tutorial we will learn: + * - How to render skybox and what is "ALLPASS" rendering method + * - How to render debug lines and bboxes + */ + +int main() { + Tyra::Engine engine; + Tyra::Tutorial08 game(&engine); + engine.run(&game); + return 0; +} diff --git a/tutorials/08-skybox-debug/src/tutorial_08.cpp b/tutorials/08-skybox-debug/src/tutorial_08.cpp new file mode 100644 index 0000000..36fd1c9 --- /dev/null +++ b/tutorials/08-skybox-debug/src/tutorial_08.cpp @@ -0,0 +1,24 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#include +#include "tutorial_08.hpp" + +namespace Tyra { + +Tutorial08::Tutorial08(Engine* t_engine) : engine(t_engine) {} + +Tutorial08::~Tutorial08() {} + +void Tutorial08::init() {} + +void Tutorial08::loop() {} + +} // namespace Tyra diff --git a/tutorials/09-manual-mode/Makefile b/tutorials/09-manual-mode/Makefile new file mode 100644 index 0000000..8cba15f --- /dev/null +++ b/tutorials/09-manual-mode/Makefile @@ -0,0 +1,24 @@ +TARGET := tutorial_09.elf +ENGINEDIR := ../../engine + +#The Directories, Source, Includes, Objects, Binary and Resources +SRCDIR := src +INCDIR := inc +BUILDDIR := obj +TARGETDIR := bin +RESDIR := res +SRCEXT := cpp +VSMEXT := vsm +VCLEXT := vcl +VCLPPEXT := vclpp +DEPEXT := d +OBJEXT := o + +#Flags, Libraries and Includes +CFLAGS := +LIB := +LIBDIRS := +INC := -I$(INCDIR) +INCDEP := -I$(INCDIR) + +include ../Makefile.tutorials-base \ No newline at end of file diff --git a/tutorials/09-manual-mode/bin/.gitignore b/tutorials/09-manual-mode/bin/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/09-manual-mode/bin/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/09-manual-mode/inc/tutorial_09.hpp b/tutorials/09-manual-mode/inc/tutorial_09.hpp new file mode 100644 index 0000000..b82a756 --- /dev/null +++ b/tutorials/09-manual-mode/inc/tutorial_09.hpp @@ -0,0 +1,29 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#pragma once + +#include + +namespace Tyra { + +class Tutorial09 : public Game { + public: + Tutorial09(Engine* engine); + ~Tutorial09(); + + void init(); + void loop(); + + private: + Engine* engine; +}; + +} // namespace Tyra diff --git a/tutorials/09-manual-mode/obj/.gitignore b/tutorials/09-manual-mode/obj/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/09-manual-mode/obj/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/09-manual-mode/res/.gitignore b/tutorials/09-manual-mode/res/.gitignore new file mode 100644 index 0000000..44c5ea8 --- /dev/null +++ b/tutorials/09-manual-mode/res/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/tutorials/09-manual-mode/run.ps1 b/tutorials/09-manual-mode/run.ps1 new file mode 100644 index 0000000..74646cc --- /dev/null +++ b/tutorials/09-manual-mode/run.ps1 @@ -0,0 +1,4 @@ +$ConfigFile = Join-Path $PSScriptRoot '../../windows-pcsx2.ps1' +. $ConfigFile + +RunPCSX2 diff --git a/tutorials/09-manual-mode/src/main.cpp b/tutorials/09-manual-mode/src/main.cpp new file mode 100644 index 0000000..effbd5f --- /dev/null +++ b/tutorials/09-manual-mode/src/main.cpp @@ -0,0 +1,26 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#include "engine.hpp" +#include "tutorial_09.hpp" + +/** + * In this tutorial we will learn: + * - What is StaticPipeline/DynamicPipeline core class + * - How to render data manually (without Mesh class) + * - What are the "3D bags" + */ + +int main() { + Tyra::Engine engine; + Tyra::Tutorial09 game(&engine); + engine.run(&game); + return 0; +} diff --git a/tutorials/09-manual-mode/src/tutorial_09.cpp b/tutorials/09-manual-mode/src/tutorial_09.cpp new file mode 100644 index 0000000..27ee5ab --- /dev/null +++ b/tutorials/09-manual-mode/src/tutorial_09.cpp @@ -0,0 +1,24 @@ +/* +# _____ ____ ___ +# | \/ ____| |___| +# | | | \ | | +#----------------------------------------------------------------------- +# Copyright 2022, tyra - https://github.com/h4570/tyra +# Licensed under Apache License 2.0 +# Sandro Sobczyński +*/ + +#include +#include "tutorial_09.hpp" + +namespace Tyra { + +Tutorial09::Tutorial09(Engine* t_engine) : engine(t_engine) {} + +Tutorial09::~Tutorial09() {} + +void Tutorial09::init() {} + +void Tutorial09::loop() {} + +} // namespace Tyra