slifer 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/slifer.ts CHANGED
@@ -1,65 +1,27 @@
1
- import { libimage, libsdl, libttf } from "./ffi";
2
- import { initLibraries } from "./engine";
3
- import Global from "./global";
4
- import { ptr } from "bun:ffi";
1
+ import { libsdl } from "./ffi";
5
2
  import Graphics from "./modules/graphics";
6
3
  import Keyboard from "./modules/keyboard";
7
4
  import Mouse from "./modules/mouse";
5
+ import Audio from "./modules/audio";
6
+ import Window from "./engine/window";
7
+ import Renderer from "./engine/renderer";
8
+ import Vector2 from "./engine/vector";
9
+ import Time from "./engine/time";
10
+ import { ptr } from "bun:ffi";
11
+ import { initLibraries } from "./engine";
8
12
  import { version } from "../package.json";
9
13
 
10
- /** @internal */
11
- class Window {
12
- public width: number;
13
- public height: number;
14
- public title: string;
15
-
16
- constructor(title: string, width: number, height: number) {
17
- this.width = width;
18
- this.height = height;
19
- this.title = title;
20
- }
21
-
22
- setSize(width: number, height: number): void {
23
- libsdl.symbols.SDL_SetWindowSize(Global.ptrWindow, width, height);
24
- }
25
-
26
- setTitle(title: string): void {
27
- libsdl.symbols.SDL_SetWindowTitle(
28
- Global.ptrWindow,
29
- Buffer.from(title + "\x00")
30
- );
31
- }
32
-
33
- setFullscreen(flag: boolean): void {
34
- libsdl.symbols.SDL_SetWindowFullscreen(Global.ptrWindow, Number(flag));
35
- }
36
-
37
- centerWindow(): void {
38
- libsdl.symbols.SDL_SetWindowPosition(
39
- Global.ptrWindow,
40
- 0x2fff0000,
41
- 0x2fff0000
42
- );
43
- }
44
-
45
- setPosition(x: number, y: number): void {
46
- libsdl.symbols.SDL_SetWindowPosition(Global.ptrWindow, x, y);
47
- }
48
- }
49
-
50
14
  /** @interal */
51
15
  export class SliferClass {
52
- private isRunning: boolean = true;
53
- private lastFrame: number = 0;
54
- private firstFrame: number = 0;
55
-
56
16
  // Modules
57
- Graphics = new Graphics();
58
- Keyboard = new Keyboard();
59
- Mouse = new Mouse();
17
+ Graphics = Graphics.instance;
18
+ Keyboard = Keyboard.instance;
19
+ Mouse = Mouse.instance;
20
+ Audio = Audio.instance;
60
21
 
61
22
  // Public Variables
62
23
  public dt: number = 0;
24
+ public isRunning: boolean = true;
63
25
 
64
26
  constructor() {
65
27
  initLibraries();
@@ -70,35 +32,19 @@ export class SliferClass {
70
32
  * @param width Width of window
71
33
  * @param height Height of window
72
34
  */
73
- createWindow(title: string, width: number, height: number): Window {
74
- // Creating cstring buffer from string
75
- const _title = Buffer.from(title + "\x00");
76
-
77
- // Creating window pointer
78
- const _win = libsdl.symbols.SDL_CreateWindow(
79
- _title,
80
- 0x2fff0000,
81
- 0x2fff0000,
82
- width,
83
- height,
84
- 0
85
- );
86
- if (_win == null) throw `Window creation failed`;
87
- Global.ptrWindow = _win;
35
+ createWindow(title: string, size: Vector2): Window {
36
+ // Create the window
37
+ const window = Window.instance;
38
+ Window.createWindow(title, size);
88
39
 
89
- // Creating renderer pointer
90
- const vsyncHint = 0x00000004;
91
- const _ren = libsdl.symbols.SDL_CreateRenderer(
92
- Global.ptrWindow,
93
- -1,
94
- vsyncHint
95
- );
96
- if (_ren == null) throw `Renderer Creation failed`;
97
- Global.ptrRenderer = _ren;
40
+ // Create the renderer
41
+ Renderer.createRenderer();
98
42
 
99
- this.firstFrame = Number(libsdl.symbols.SDL_GetPerformanceCounter());
43
+ // Start delta time calculations
44
+ Time.instance.init();
100
45
 
101
- return new Window(title, width, height);
46
+ // Return the window object
47
+ return window;
102
48
  }
103
49
 
104
50
  /**
@@ -106,15 +52,10 @@ export class SliferClass {
106
52
  */
107
53
  shouldClose(): boolean {
108
54
  // Clear the renderer
109
- libsdl.symbols.SDL_RenderClear(Global.ptrRenderer);
55
+ Renderer.clear();
110
56
 
111
- // Setup deltatime
112
- this.lastFrame = this.firstFrame;
113
- this.firstFrame = Number(libsdl.symbols.SDL_GetPerformanceCounter());
114
-
115
- this.dt =
116
- ((this.firstFrame - this.lastFrame) * 1000) /
117
- Number(libsdl.symbols.SDL_GetPerformanceFrequency());
57
+ // Calculate delta time
58
+ this.dt = Time.instance.calcDelta();
118
59
 
119
60
  // Poll Events
120
61
  const eventArray = new Uint16Array(32);
@@ -128,19 +69,13 @@ export class SliferClass {
128
69
  break;
129
70
  // Keydown event
130
71
  case 768:
131
- const _dscancode = eventArray[8];
132
- const _dkey =
133
- libsdl.symbols.SDL_GetKeyFromScancode(_dscancode);
134
- const _dname = libsdl.symbols.SDL_GetKeyName(_dkey);
135
- Keyboard.setKeyDown(_dname.toString().toLowerCase());
72
+ var scancode = eventArray[8];
73
+ Keyboard.setKeyDown(scancode);
136
74
  break;
137
75
  // Keyup event
138
76
  case 769:
139
- const _uscancode = eventArray[8];
140
- const _ukey =
141
- libsdl.symbols.SDL_GetKeyFromScancode(_uscancode);
142
- const _uname = libsdl.symbols.SDL_GetKeyName(_ukey);
143
- Keyboard.setKeyUp(_uname.toString().toLowerCase());
77
+ var scancode = eventArray[8];
78
+ Keyboard.setKeyUp(scancode);
144
79
  break;
145
80
  // Mouse down event
146
81
  case 1025:
@@ -162,9 +97,8 @@ export class SliferClass {
162
97
  * Slifers quit method
163
98
  */
164
99
  quit() {
165
- libttf.symbols.TTF_CloseFont(Global.ptrFont);
166
- libsdl.symbols.SDL_DestroyRenderer(Global.ptrRenderer);
167
- libsdl.symbols.SDL_DestroyWindow(Global.ptrWindow);
100
+ libsdl.symbols.SDL_DestroyRenderer(Renderer.pointer);
101
+ libsdl.symbols.SDL_DestroyWindow(Window.pointer);
168
102
  libsdl.symbols.SDL_Quit();
169
103
  }
170
104
 
@@ -172,4 +106,3 @@ export class SliferClass {
172
106
  return version;
173
107
  }
174
108
  }
175
-
package/bun.lockb DELETED
Binary file