33## Introduction
44
55` SimpleGraphic.dll ` is the host environment for Lua.
6- It contains the API used by the application's Lua logic, as well as a 2D OpenGL
7- renderer, window management, input handling, and a debug console.
6+ It contains the API used by the application's Lua logic, as well as a
7+ 2D OpenGL ES 2.0 renderer, window management, input handling, and a
8+ debug console.
89It exports one symbol, ` RunLuaFileAsWin ` , which is passed a
910C-style argc/argv argument list, with the script path as ` argv[0] ` .
1011
@@ -21,27 +22,52 @@ appears during the program's initialisation
2122
2223## Building
2324
24- ` SimpleGraphic.dll ` is currently built using Visual Studio 2019 .
25+ ` SimpleGraphic.dll ` is currently built using Visual Studio 2022 for 64-bit .
2526
26- The DLL depends on a number of 3rd-party libraries. Details and instructions
27- for how to obtain them are in [ DEPENDENCIES.md] ( DEPENDENCIES.md ) .
27+ The DLL depends on a number of 3rd-party libraries, all provided either as
28+ direct submodules and built by the main ` CMakeLists.txt ` file or built from
29+ ports in the ` vcpkg ` submodule as part of the build process.
2830
29- Once the libraries are obtained, follow these instructions to build the DLL:
30- 1 ) Open ` SimpleGraphic.sln ` in Visual Studio 2019
31- 2 ) Choose the "Release|x86" configuration
32- 3 ) Build the solution
33- 4 ) The resulting ` SimpleGraphic.dll ` can be found in the ` Release ` directory
34- 5 ) Copy ` SimpleGraphic.dll ` to the Path of Building install directory,
35- replacing the existing file.
31+ The build process will also build the ` lcurl ` and ` lzip ` Lua extensions
32+ against the same LuaJIT version as the DLL is built with.
33+
34+ A short guide on building and debugging the DLL is available in
35+ [ CONTRIBUTING.md] ( CONTRIBUTING.md ) .
36+
37+ The ` INSTALL ` target will deploy the DLL, its dependencies and the VC++
38+ runtime to the installation directory.
3639
3740## Debugging
3841
3942Since SimpleGraphic.dll is dynamically loaded by ` PathOfBuilding.exe ` ,
4043to debug it, run ` PathOfBuilding.exe ` and then attach to that process using the
4144"Debug" > "Attach to Process..." menu option in Visual Studio.
4245
43- If debugging of the initialization is desired, then adding a ` MessageBox `
44- or some other pause at the start will give you time to attach and continue.
46+ Visual Studio can also be configured to start the Path of Building executable
47+ when debugging a target which troubleshooting of early startup.
48+
49+ ## Project dependencies
50+
51+ Runtime and utilities:
52+ * [ LuaJIT] ( https://github.com/LuaJIT/LuaJIT ) - fast Lua fork with JIT compilation that has diverged from upstream Lua at version 5.1
53+ * [ curl] ( https://curl.se/ ) - very common HTTP library, exposed to Lua
54+ * [ fmtlib] ( https://fmt.dev/ ) - modern string formatting
55+ * [ libsodium] ( https://doc.libsodium.org/ ) - friendly cryptographic primitives, used in SimpleGraphic for fast hashing
56+ * [ pkgconf] ( http://pkgconf.org/ ) - part of the build process to locate builds of bundled libraries
57+ * [ re2] ( https://github.com/google/re2 ) - regex library
58+
59+ Graphics:
60+ * [ GLFW] ( https://www.glfw.org/ ) - multi-platform windowing library for OpenGL (and other APIs)
61+ * [ ANGLE] ( https://github.com/google/angle ) - OpenGL ES runtime from Google built on top of native rendering APIs
62+ * [ Glad 2] ( https://gen.glad.sh/ ) - OpenGL header generator
63+
64+ Compression and image formats:
65+ * [ stb] ( https://github.com/nothings/stb ) - single-header libraries for many things, here image reading and writing
66+ * [ giflib] ( https://sourceforge.net/projects/giflib/ ) - GIF loading/saving
67+ * [ libjpeg-turbo] ( https://libjpeg-turbo.org/ ) - JPEG loading/saving
68+ * [ libpng] ( http://www.libpng.org/pub/png/libpng.html ) - PNG loading/saving
69+ * [ liblzma] ( https://tukaani.org/xz/ ) - LZMA compression/decompression
70+ * [ zlib] ( https://www.zlib.net/ ) - zlib compression/decompression
4571
4672## Licence
4773
0 commit comments