-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
106 lines (81 loc) · 2.92 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using System;
using System.Numerics;
using System.Collections.Generic;
using Raylib_cs;
using ImGuiNET;
namespace MasterSpark
{
class Program
{
public static RenderController MainCamera;
static int WindowWidth = 1280;
static int WindowHeight = 720;
static int TargetFPS = 60;
static ImguiController ImguiController = new ImguiController();
static Texture2D logo;
static bool ImGuiVisible = false;
static void Main(string[] args)
{
Init();
while (!Raylib.WindowShouldClose())
{
Update();
Draw();
}
Console.IsWindowClosed = true;
ImguiController.Dispose();
Raylib.CloseWindow();
}
public static void Init()
{
Raylib.SetTraceLogCallback(Console.RaylibLog);
// Create our window
Raylib.SetConfigFlags(
ConfigFlag.FLAG_WINDOW_RESIZABLE |
ConfigFlag.FLAG_MSAA_4X_HINT |
ConfigFlag.FLAG_VSYNC_HINT
);
// Raylib.SetConfigFlags(ConfigFlag.FLAG_MSAA_4X_HINT);
Raylib.InitWindow(WindowWidth, WindowHeight, "MasterSpark");
ImguiController.Load(WindowWidth, WindowHeight);
Raylib.SetTargetFPS(TargetFPS);
logo = Raylib.LoadTexture("assets/logo.png");
Raylib.GenTextureMipmaps(ref logo);
MainCamera = new RenderController(
new Vector2(1280, 720),
new Vector2(1280, 720),
4f
);
Game.Init();
}
public static void Update()
{
WindowWidth = Raylib.GetScreenWidth();
WindowHeight = Raylib.GetScreenHeight();
ImguiController.Resize(WindowWidth, WindowHeight);
ImguiController.Update(Raylib.GetFrameTime());
Game.Update();
MainCamera.DestSize = new Vector2(
Raylib.GetScreenWidth(), Raylib.GetScreenHeight()
);
if (ImGuiVisible)
{
GUI.SubmitUI();
}
if (Raylib.IsKeyPressed(KeyboardKey.KEY_F10)) { ImGuiVisible = !ImGuiVisible;}
}
public static void Draw()
{
MainCamera.Begin();
Raylib.ClearBackground(Color.SKYBLUE);
Game.Draw();
MainCamera.End();
Raylib.BeginDrawing();
Raylib.ClearBackground(Color.WHITE);
MainCamera.Draw();
if(ImGuiVisible) { Raylib.DrawTextureEx(logo, new Vector2(0, Raylib.GetScreenHeight() - logo.height*0.25f), 0f, 0.25f, Color.WHITE); }
ImguiController.Draw();
Raylib.EndDrawing();
}
}
}