mirror of
https://github.com/AntonioND/nitro-engine.git
synced 2025-06-18 16:45:33 -04:00
examples: Remove global variables from some examples
This commit is contained in:
parent
a06617a93f
commit
9f81541075
@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: CC0-1.0
|
||||
//
|
||||
// SPDX-FileContributor: Antonio Niño Díaz, 2008-2011, 2019, 2022
|
||||
// SPDX-FileContributor: Antonio Niño Díaz, 2008-2011, 2019, 2022, 2024
|
||||
//
|
||||
// This file is part of Nitro Engine
|
||||
|
||||
@ -18,11 +18,15 @@
|
||||
#include "s64.h"
|
||||
#include "s256.h"
|
||||
|
||||
NE_Material *Material_s8, *Material_s16, *Material_s64, *Material_s256;
|
||||
NE_Palette *Palette_s8, *Palette_s16, *Palette_s64, *Palette_s256;
|
||||
typedef struct {
|
||||
NE_Material *Material_s8, *Material_s16, *Material_s64, *Material_s256;
|
||||
NE_Palette *Palette_s8, *Palette_s16, *Palette_s64, *Palette_s256;
|
||||
} SceneData;
|
||||
|
||||
void Draw3DScene(void)
|
||||
void Draw3DScene(void *arg)
|
||||
{
|
||||
SceneData *Scene = arg;
|
||||
|
||||
NE_ClearColorSet(NE_DarkGray, 31, 63);
|
||||
|
||||
NE_2DViewInit();
|
||||
@ -30,27 +34,29 @@ void Draw3DScene(void)
|
||||
// Texture scaled from 64x64 to 128x128
|
||||
NE_2DDrawTexturedQuad(10, 10,
|
||||
10 + 128, 10 + 128,
|
||||
2, Material_s64);
|
||||
2, Scene->Material_s64);
|
||||
|
||||
// Texture scaled from 8x8 to 32x32
|
||||
NE_2DDrawTexturedQuad(150, 10,
|
||||
150 + 32, 10 + 32,
|
||||
0, Material_s8);
|
||||
0, Scene->Material_s8);
|
||||
|
||||
// Texture not scaled
|
||||
NE_2DDrawTexturedQuad(160, 50,
|
||||
160 + 64, 50 + 64,
|
||||
10, Material_s64);
|
||||
10, Scene->Material_s64);
|
||||
|
||||
|
||||
// Texture scaled from 16x16 to 64x64
|
||||
NE_2DDrawTexturedQuad(150, 120,
|
||||
150 + 64, 120 + 64,
|
||||
1, Material_s16);
|
||||
1, Scene->Material_s16);
|
||||
}
|
||||
|
||||
void Draw3DScene2(void)
|
||||
void Draw3DScene2(void *arg)
|
||||
{
|
||||
SceneData *Scene = arg;
|
||||
|
||||
NE_ClearColorSet(NE_Magenta, 31, 63);
|
||||
|
||||
NE_2DViewInit();
|
||||
@ -58,55 +64,57 @@ void Draw3DScene2(void)
|
||||
// Texture not scaled
|
||||
NE_2DDrawTexturedQuad(-10, -70,
|
||||
-10 + 256, -70 + 256,
|
||||
3, Material_s256);
|
||||
3, Scene->Material_s256);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
SceneData Scene = { 0 };
|
||||
|
||||
irqEnable(IRQ_HBLANK);
|
||||
irqSet(IRQ_VBLANK, NE_VBLFunc);
|
||||
irqSet(IRQ_HBLANK, NE_HBLFunc);
|
||||
|
||||
NE_InitDual3D();
|
||||
|
||||
Material_s8 = NE_MaterialCreate();
|
||||
Material_s16 = NE_MaterialCreate();
|
||||
Material_s64 = NE_MaterialCreate();
|
||||
Material_s256 = NE_MaterialCreate();
|
||||
Scene.Material_s8 = NE_MaterialCreate();
|
||||
Scene.Material_s16 = NE_MaterialCreate();
|
||||
Scene.Material_s64 = NE_MaterialCreate();
|
||||
Scene.Material_s256 = NE_MaterialCreate();
|
||||
|
||||
Palette_s8 = NE_PaletteCreate();
|
||||
Palette_s16 = NE_PaletteCreate();
|
||||
Palette_s64 = NE_PaletteCreate();
|
||||
Palette_s256 = NE_PaletteCreate();
|
||||
Scene.Palette_s8 = NE_PaletteCreate();
|
||||
Scene.Palette_s16 = NE_PaletteCreate();
|
||||
Scene.Palette_s64 = NE_PaletteCreate();
|
||||
Scene.Palette_s256 = NE_PaletteCreate();
|
||||
|
||||
NE_MaterialTexLoad(Material_s8, NE_PAL16, 8, 8,
|
||||
NE_MaterialTexLoad(Scene.Material_s8, NE_PAL16, 8, 8,
|
||||
NE_TEXGEN_TEXCOORD | NE_TEXTURE_WRAP_S | NE_TEXTURE_WRAP_T,
|
||||
s8Bitmap);
|
||||
NE_MaterialTexLoad(Material_s16, NE_PAL16, 16, 16,
|
||||
NE_MaterialTexLoad(Scene.Material_s16, NE_PAL16, 16, 16,
|
||||
NE_TEXGEN_TEXCOORD | NE_TEXTURE_WRAP_S | NE_TEXTURE_WRAP_T,
|
||||
s16Bitmap);
|
||||
NE_MaterialTexLoad(Material_s64, NE_PAL16, 64, 64,
|
||||
NE_MaterialTexLoad(Scene.Material_s64, NE_PAL16, 64, 64,
|
||||
NE_TEXGEN_TEXCOORD | NE_TEXTURE_WRAP_S | NE_TEXTURE_WRAP_T,
|
||||
s64Bitmap);
|
||||
NE_MaterialTexLoad(Material_s256, NE_PAL16, 256, 256,
|
||||
NE_MaterialTexLoad(Scene.Material_s256, NE_PAL16, 256, 256,
|
||||
NE_TEXGEN_TEXCOORD | NE_TEXTURE_WRAP_S | NE_TEXTURE_WRAP_T,
|
||||
s256Bitmap);
|
||||
|
||||
NE_PaletteLoad(Palette_s8, s8Pal, 16, NE_PAL16);
|
||||
NE_PaletteLoad(Palette_s16, s16Pal, 16, NE_PAL16);
|
||||
NE_PaletteLoad(Palette_s64, s64Pal, 16, NE_PAL16);
|
||||
NE_PaletteLoad(Palette_s256, s256Pal, 16, NE_PAL16);
|
||||
NE_PaletteLoad(Scene.Palette_s8, s8Pal, 16, NE_PAL16);
|
||||
NE_PaletteLoad(Scene.Palette_s16, s16Pal, 16, NE_PAL16);
|
||||
NE_PaletteLoad(Scene.Palette_s64, s64Pal, 16, NE_PAL16);
|
||||
NE_PaletteLoad(Scene.Palette_s256, s256Pal, 16, NE_PAL16);
|
||||
|
||||
NE_MaterialSetPalette(Material_s8, Palette_s8);
|
||||
NE_MaterialSetPalette(Material_s16, Palette_s16);
|
||||
NE_MaterialSetPalette(Material_s64, Palette_s64);
|
||||
NE_MaterialSetPalette(Material_s256, Palette_s256);
|
||||
NE_MaterialSetPalette(Scene.Material_s8, Scene.Palette_s8);
|
||||
NE_MaterialSetPalette(Scene.Material_s16, Scene.Palette_s16);
|
||||
NE_MaterialSetPalette(Scene.Material_s64, Scene.Palette_s64);
|
||||
NE_MaterialSetPalette(Scene.Material_s256, Scene.Palette_s256);
|
||||
|
||||
while (1)
|
||||
{
|
||||
NE_WaitForVBL(0);
|
||||
|
||||
NE_ProcessDual(Draw3DScene, Draw3DScene2);
|
||||
NE_ProcessDualArg(Draw3DScene, Draw3DScene2, &Scene, &Scene);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: CC0-1.0
|
||||
//
|
||||
// SPDX-FileContributor: Antonio Niño Díaz, 2008-2011, 2019, 2022
|
||||
// SPDX-FileContributor: Antonio Niño Díaz, 2008-2011, 2019, 2022, 2024
|
||||
//
|
||||
// This file is part of Nitro Engine
|
||||
|
||||
@ -8,10 +8,6 @@
|
||||
|
||||
#include "icon.h"
|
||||
|
||||
NE_Material *Material;
|
||||
NE_Palette *Palette;
|
||||
NE_Sprite *Sprite[4];
|
||||
|
||||
void Draw3DScene(void)
|
||||
{
|
||||
NE_2DViewInit();
|
||||
@ -27,8 +23,8 @@ int main(void)
|
||||
NE_Init3D();
|
||||
NE_SwapScreens();
|
||||
|
||||
Material = NE_MaterialCreate();
|
||||
Palette = NE_PaletteCreate();
|
||||
NE_Material *Material = NE_MaterialCreate();
|
||||
NE_Palette *Palette = NE_PaletteCreate();
|
||||
|
||||
NE_MaterialTexLoad(Material, NE_PAL16, 128, 128, NE_TEXGEN_TEXCOORD,
|
||||
iconBitmap);
|
||||
@ -38,6 +34,7 @@ int main(void)
|
||||
|
||||
NE_ClearColorSet(NE_Gray, 31, 63);
|
||||
|
||||
NE_Sprite *Sprite[4];
|
||||
Sprite[0] = NE_SpriteCreate();
|
||||
Sprite[1] = NE_SpriteCreate();
|
||||
Sprite[2] = NE_SpriteCreate();
|
||||
|
@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: CC0-1.0
|
||||
//
|
||||
// SPDX-FileContributor: Antonio Niño Díaz, 2008-2011, 2019, 2022
|
||||
// SPDX-FileContributor: Antonio Niño Díaz, 2008-2011, 2019, 2022, 2024
|
||||
//
|
||||
// This file is part of Nitro Engine
|
||||
|
||||
@ -9,26 +9,31 @@
|
||||
#include "texture.h"
|
||||
#include "sphere_bin.h"
|
||||
|
||||
NE_Camera *Camera;
|
||||
NE_Model *Model, *Model2, *Model3;
|
||||
NE_Material *Material;
|
||||
typedef struct {
|
||||
NE_Camera *Camera;
|
||||
NE_Model *Model, *Model2, *Model3;
|
||||
} SceneData;
|
||||
|
||||
void Draw3DScene(void)
|
||||
void Draw3DScene(void *arg)
|
||||
{
|
||||
SceneData *Scene = arg;
|
||||
|
||||
// Set camera
|
||||
NE_CameraUse(Camera);
|
||||
NE_CameraUse(Scene->Camera);
|
||||
|
||||
// This has to be used to use fog
|
||||
NE_PolyFormat(31, 0, NE_LIGHT_ALL, NE_CULL_BACK, NE_FOG_ENABLE);
|
||||
|
||||
// Draw models
|
||||
NE_ModelDraw(Model);
|
||||
NE_ModelDraw(Model2);
|
||||
NE_ModelDraw(Model3);
|
||||
NE_ModelDraw(Scene->Model);
|
||||
NE_ModelDraw(Scene->Model2);
|
||||
NE_ModelDraw(Scene->Model3);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
SceneData Scene = { 0 };
|
||||
|
||||
irqEnable(IRQ_HBLANK);
|
||||
irqSet(IRQ_VBLANK, NE_VBLFunc);
|
||||
irqSet(IRQ_VBLANK, NE_HBLFunc);
|
||||
@ -41,39 +46,39 @@ int main(void)
|
||||
consoleDemoInit();
|
||||
|
||||
// Allocate objects
|
||||
Model = NE_ModelCreate(NE_Static);
|
||||
Model2 = NE_ModelCreate(NE_Static);
|
||||
Model3 = NE_ModelCreate(NE_Static);
|
||||
Camera = NE_CameraCreate();
|
||||
Material = NE_MaterialCreate();
|
||||
Scene.Model = NE_ModelCreate(NE_Static);
|
||||
Scene.Model2 = NE_ModelCreate(NE_Static);
|
||||
Scene.Model3 = NE_ModelCreate(NE_Static);
|
||||
Scene.Camera = NE_CameraCreate();
|
||||
NE_Material *Material = NE_MaterialCreate();
|
||||
|
||||
// Set camera coordinates
|
||||
NE_CameraSet(Camera,
|
||||
NE_CameraSet(Scene.Camera,
|
||||
-1, 2, -1,
|
||||
1, 1, 1,
|
||||
0, 1, 0);
|
||||
|
||||
// Load models
|
||||
NE_ModelLoadStaticMesh(Model, sphere_bin);
|
||||
NE_ModelLoadStaticMesh(Model2, sphere_bin);
|
||||
NE_ModelLoadStaticMesh(Model3, sphere_bin);
|
||||
NE_ModelLoadStaticMesh(Scene.Model, sphere_bin);
|
||||
NE_ModelLoadStaticMesh(Scene.Model2, sphere_bin);
|
||||
NE_ModelLoadStaticMesh(Scene.Model3, sphere_bin);
|
||||
|
||||
// Load texture
|
||||
NE_MaterialTexLoad(Material, NE_RGB5, 256, 256, NE_TEXGEN_TEXCOORD,
|
||||
textureBitmap);
|
||||
|
||||
// Assign the same material to every model object.
|
||||
NE_ModelSetMaterial(Model, Material);
|
||||
NE_ModelSetMaterial(Model2, Material);
|
||||
NE_ModelSetMaterial(Model3, Material);
|
||||
NE_ModelSetMaterial(Scene.Model, Material);
|
||||
NE_ModelSetMaterial(Scene.Model2, Material);
|
||||
NE_ModelSetMaterial(Scene.Model3, Material);
|
||||
|
||||
// Set light and vector of light 0
|
||||
NE_LightSet(0, NE_White, 0, -1, -1);
|
||||
|
||||
// Set position of every object
|
||||
NE_ModelSetCoord(Model, 1, 0, 1);
|
||||
NE_ModelSetCoord(Model2, 3, 1, 3);
|
||||
NE_ModelSetCoord(Model3, 7, 2, 7);
|
||||
NE_ModelSetCoord(Scene.Model, 1, 0, 1);
|
||||
NE_ModelSetCoord(Scene.Model2, 3, 1, 3);
|
||||
NE_ModelSetCoord(Scene.Model3, 7, 2, 7);
|
||||
|
||||
// Set initial fog color to black
|
||||
u32 color = NE_Black;
|
||||
@ -125,7 +130,7 @@ int main(void)
|
||||
shift, mass, depth);
|
||||
|
||||
// Draw scene
|
||||
NE_Process(Draw3DScene);
|
||||
NE_ProcessArg(Draw3DScene, &Scene);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user