-
-
Save jrfondren/d776ccffb105f464b53c53712656a1d3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/api/source/hipengine/api/graphics/g2d/renderer2d.d b/api/source/hipengine/api/graphics/g2d/renderer2d.d | |
index ed81591..4921e32 100644 | |
--- a/api/source/hipengine/api/graphics/g2d/renderer2d.d | |
+++ b/api/source/hipengine/api/graphics/g2d/renderer2d.d | |
@@ -16,7 +16,6 @@ public import hipengine.api.graphics.color; | |
public import hipengine.api.renderer.texture; | |
public import hipengine.api.graphics.g2d.hipsprite; | |
- | |
version(Script) | |
{ | |
extern(C) void function() beginSprite; | |
@@ -44,19 +43,19 @@ void initG2D() | |
{ | |
version(Script) | |
{ | |
- loadSymbol!beginSprite; | |
- loadSymbol!endSprite; | |
- loadSymbol!beginGeometry; | |
- loadSymbol!endGeometry; | |
- loadSymbol!setGeometryColor; | |
- loadSymbol!drawPixel; | |
- loadSymbol!drawRectangle; | |
- loadSymbol!drawTriangle; | |
- loadSymbol!fillRectangle; | |
- loadSymbol!fillTriangle; | |
- loadSymbol!drawLine; | |
- loadSymbol!drawSprite; | |
- loadSymbol!newSprite; | |
- loadSymbol!destroySprite; | |
+ mixin(loadSymbol("beginSprite")); | |
+ mixin(loadSymbol("endSprite")); | |
+ mixin(loadSymbol("beginGeometry")); | |
+ mixin(loadSymbol("endGeometry")); | |
+ mixin(loadSymbol("setGeometryColor")); | |
+ mixin(loadSymbol("drawPixel")); | |
+ mixin(loadSymbol("drawRectangle")); | |
+ mixin(loadSymbol("drawTriangle")); | |
+ mixin(loadSymbol("fillRectangle")); | |
+ mixin(loadSymbol("fillTriangle")); | |
+ mixin(loadSymbol("drawLine")); | |
+ mixin(loadSymbol("drawSprite")); | |
+ mixin(loadSymbol("newSprite")); | |
+ mixin(loadSymbol("destroySprite")); | |
} | |
} | |
diff --git a/api/source/hipengine/api/input/package.d b/api/source/hipengine/api/input/package.d | |
index 88b0f82..6e19ab6 100644 | |
--- a/api/source/hipengine/api/input/package.d | |
+++ b/api/source/hipengine/api/input/package.d | |
@@ -14,32 +14,31 @@ public import hipengine.api.math.vector; | |
public import hipengine.api.input.mouse; | |
public import hipengine.api.input.gamepad; | |
- | |
void initInput() | |
{ | |
version(Script) | |
{ | |
import hipengine.internal; | |
- loadSymbol!isKeyPressed; | |
- loadSymbol!isKeyJustPressed; | |
- loadSymbol!isKeyJustReleased; | |
- loadSymbol!getKeyDownTime; | |
- loadSymbol!getKeyUpTime; | |
- loadSymbol!isMouseButtonPressed; | |
- loadSymbol!isMouseButtonJustPressed; | |
- loadSymbol!isMouseButtonJustReleased; | |
- loadSymbol!getTouchPosition; | |
- loadSymbol!getTouchDeltaPosition; | |
- loadSymbol!getScroll; | |
+ mixin(loadSymbol("isKeyPressed")); | |
+ mixin(loadSymbol("isKeyJustPressed")); | |
+ mixin(loadSymbol("isKeyJustReleased")); | |
+ mixin(loadSymbol("getKeyDownTime")); | |
+ mixin(loadSymbol("getKeyUpTime")); | |
+ mixin(loadSymbol("isMouseButtonPressed")); | |
+ mixin(loadSymbol("isMouseButtonJustPressed")); | |
+ mixin(loadSymbol("isMouseButtonJustReleased")); | |
+ mixin(loadSymbol("getTouchPosition")); | |
+ mixin(loadSymbol("getTouchDeltaPosition")); | |
+ mixin(loadSymbol("getScroll")); | |
//Gamepad | |
- loadSymbol!getGamepadCount; | |
- loadSymbol!getGamepad; | |
- loadSymbol!getAnalog; | |
- loadSymbol!isGamepadButtonPressed; | |
- loadSymbol!setGamepadVibrating; | |
- loadSymbol!getGamepadBatteryStatus; | |
- loadSymbol!isGamepadWireless; | |
+ mixin(loadSymbol("getGamepadCount")); | |
+ mixin(loadSymbol("getGamepad")); | |
+ mixin(loadSymbol("getAnalog")); | |
+ mixin(loadSymbol("isGamepadButtonPressed")); | |
+ mixin(loadSymbol("setGamepadVibrating")); | |
+ mixin(loadSymbol("getGamepadBatteryStatus")); | |
+ mixin(loadSymbol("isGamepadWireless")); | |
} | |
} | |
diff --git a/api/source/hipengine/api/math/random.d b/api/source/hipengine/api/math/random.d | |
index 7d5c51d..2636a7f 100644 | |
--- a/api/source/hipengine/api/math/random.d | |
+++ b/api/source/hipengine/api/math/random.d | |
@@ -30,9 +30,9 @@ package void initRandom() | |
version(Script) | |
{ | |
import hipengine.internal; | |
- loadSymbol!range; | |
- loadSymbol!rangeu; | |
- loadSymbol!rangeub; | |
- loadSymbol!rangef; | |
+ mixin(loadSymbol("range")); | |
+ mixin(loadSymbol("rangeu")); | |
+ mixin(loadSymbol("rangeub")); | |
+ mixin(loadSymbol("rangef")); | |
} | |
} | |
diff --git a/api/source/hipengine/internal.d b/api/source/hipengine/internal.d | |
index 0a310ad..c8c7aae 100644 | |
--- a/api/source/hipengine/internal.d | |
+++ b/api/source/hipengine/internal.d | |
@@ -12,7 +12,7 @@ Distributed under the CC BY-4.0 License. | |
module hipengine.internal; | |
-version(Script){private __gshared void* _dll;} | |
+version(Script){__gshared void* _dll;} | |
void initializeHip() | |
{ | |
@@ -34,18 +34,18 @@ version(Script): | |
version(Windows) | |
{ | |
import core.sys.windows.windows:GetProcAddress; | |
- private alias _loadSymbol = GetProcAddress; | |
+ alias _loadSymbol = GetProcAddress; | |
} | |
else | |
{ | |
import core.sys.posix.dlfcn:dlsym; | |
- private alias _loadSymbol = dlsym; | |
+ alias _loadSymbol = dlsym; | |
} | |
///Loads the symbol directly inside 's' | |
-void loadSymbol(alias s)() | |
+string loadSymbol(string s) | |
{ | |
- s = cast(typeof(s))_loadSymbol(_dll, (s.stringof~"\0").ptr); | |
+ return s ~ " = cast(typeof(" ~ s ~"))_loadSymbol(_dll, (\""~s~"\").ptr);"; | |
} | |
///Gets the symbol from 's' casted to 's' type ( useful when not loading directly into the function pointers) | |
diff --git a/api/source/hipengine/package.d b/api/source/hipengine/package.d | |
index f760bba..15217a2 100644 | |
--- a/api/source/hipengine/package.d | |
+++ b/api/source/hipengine/package.d | |
@@ -58,7 +58,7 @@ else | |
version(Script) void function(string s) log; | |
void initConsole() | |
{ | |
- version(Script){loadSymbol!log;} | |
+ version(Script){mixin(loadSymbol("log"));} | |
} | |
mixin template HipEngineMain(alias StartScene) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment