+
# Wicked Engine Scripting API Documentation
This is a reference and explanation of Lua scripting features in Wicked Engine.
@@ -124,7 +126,7 @@ You can use the Renderer with the following functions, all of which are in the g
- PutDecal(Decal decal)
- PutEnvProbe(Vector pos)
- ClearWorld(opt Scene scene) -- Clears the global scene and the associated renderer resources
-- ReloadShaders(opt string path)
+- ReloadShaders()
### Sprite
Render images on the screen.
diff --git a/Documentation/WickedEngine-Documentation.md b/Content/Documentation/WickedEngine-Documentation.md
similarity index 90%
rename from Documentation/WickedEngine-Documentation.md
rename to Content/Documentation/WickedEngine-Documentation.md
index 7a781b8e0..31bc11825 100644
--- a/Documentation/WickedEngine-Documentation.md
+++ b/Content/Documentation/WickedEngine-Documentation.md
@@ -1,3 +1,5 @@
+
+
# WickedEngine Documentation
This is a reference for the C++ features of Wicked Engine
@@ -65,11 +67,6 @@ This is a reference for the C++ features of Wicked Engine
4. [GraphicsDevice_Vulkan](#wigraphicsdevice_vulkan)
5. [Graphics Descriptors](#graphics-descriptors)
6. [Graphics Resources](#graphics-resources)
- 7. [GPUMapping](#gpumapping)
- 1. [ConstantBufferMapping](#constantbuffermapping)
- 2. [ResourceMapping](#resourcemapping)
- 3. [SamplerMapping](#samplermapping)
- 4. [ShaderInterop](#shaderinterop)
2. [wiRenderer](#wirenderer)
1. [DrawScene](#drawscene)
2. [DrawScene_Transparent](#drawscene_transparent)
@@ -159,13 +156,19 @@ This is a reference for the C++ features of Wicked Engine
1. [wiBacklog](#wibacklog)
2. [wiProfiler](#wiprofiler)
12. [Shaders](#shaders)
+ 1. [Interop](#interop)
+ 1. [ConstantBufferMapping](#constantbuffermapping)
+ 2. [ResourceMapping](#resourcemapping)
+ 3. [SamplerMapping](#samplermapping)
+ 4. [ShaderInterop](#shaderinterop)
+ 2. [Shader Compiler](#shader-compiler)
## High Level Interface
The high level interface consists of classes that allow for extending the engine with custom functionality. This is usually done by overriding the classes.
### MainComponent
-[[Header]](../WickedEngine/MainComponent.h) [[Cpp]](../WickedEngine/MainComponent.cpp)
+[[Header]](../../WickedEngine/MainComponent.h) [[Cpp]](../../WickedEngine/MainComponent.cpp)
This is the main runtime component that has the Run() function. It should be included in the application entry point while calling Run() in an infinite loop.
+
# Wicked Engine
@@ -11,40 +11,44 @@
-Wicked Engine is an open-source game engine written in C++. It is easy to use, high performance and feature rich. There are no external dependencies, but some free libraries are included as part of the source code. The MIT license means that anyone is free to download, modify, and share it. This project is hosted on GitHub.
+
+Wicked Engine is an open-source C++ engine focusing on modern rendering techniques and performance. Use this as a framework for your graphics projects, or learning. Some programming skills are required for the best experience, but some simple tools like an Editor are also included. It is free to be used for anything good.
+
### Platforms:
- Windows 10 Desktop [Visual Studio 2019]
- UWP [Visual Studio 2019]
-- Linux [CMake 3.7]
+- Linux (experimental) [CMake 3.7]
### How to build:
#### Windows
To build Wicked Engine for Windows 10, use Visual Studio and the provided `WickedEngine.sln` solution file. There are a couple of projects that you can run up front: Editor, Tests and Template. You just have to set either as startup project and press F5 in Visual Studio to build and run. For optimal performance, choose `Release` mode, for the best debugging experience, choose `Debug` mode.
-
+
-If you want to develop an application that uses Wicked Engine, you will have to link to WickedEngine_Windows.lib or WickedEngine_UWP.lib.lib and `#include "WickedEngine.h"` into the source code. For examples, look at the Template, Editor and Tests projects in Visual Studio that do this.
+If you want to develop an application that uses Wicked Engine, you can build the WickedEngine static library project for the appropriate platform, such as `WickedEngine_Windows` and link against it. Including the `"WickedEngine.h"` header will attempt to link the binaries for the appropriate platform, but search directories should be set up beforehand. For example, you can set additional library directories to `$(SolutionDir)BUILD\$(Platform)\$(Configuration)` by default. For examples, see the `Template`, `Tests`, and `Editor` projects.
You can also dowload prebuilt and packaged versions of the Editor and Tests here: [](https://github.com/turanszkij/WickedEngine/actions)
If you have questions or stuck, please use the `windows` communication channel on Discord: [](https://discord.gg/CFjRYmE)
-Note: Building 32-bit and ARM versions are possible, but no longer provided by default. The developer will need to configure the solution themselves for these platforms. For ARM platform, also use the `-D BT_USE_DOUBLE_PRECISION=1` definition when compiling.
+Note: Building 32-bit and ARM versions should be possible, but no longer provided by default. You will need to configure the solution for these platforms yourself if you want this. For ARM platform, also use the `-D BT_USE_DOUBLE_PRECISION=1` definition when compiling.
+
+Cmake: It is possible to build the windows version with Cmake, but the recommended way is to use the provided WickedEngine.sln file with Visual Studio as this is the most tested method.
#### Linux
The Linux support is experimental. You can find a sample build script for Ubuntu 20.04 [here](.github/workflows/build.yml) (in the linux section). You might need to install some dependencies, such as Vulkan SDK 1.2 or greater (to get DirectXShaderCompiler), SDL2, cmake 3.7 and g++ compiler (C++ 17 compliant version). For Ubuntu 20.04, you can use the following commands to install dependencies:
@@ -76,7 +80,7 @@ If you have questions or stuck, please use the `linux` communication channel on
#### Initialization (C++):
-
+
```cpp
// Include engine headers:
@@ -178,11 +182,11 @@ For more code samples and advanced use cases, please see the example projects, l
### Scripting API:
-
+
You can use a great number of engine features through the Lua scripting api, which can even be used real time while the program is running. The included applications, like the Editor,
contain a scripting input method toggled by the "Home" key. A blue screen will be presented where the user can type in LUA commands. It is very minimal in regards to input methods.
-For further details, please check the scripting API documentation: [Wicked Engine Scripting API](Documentation/ScriptingAPI-Documentation.md)
+For further details, please check the scripting API documentation: [Wicked Engine Scripting API](Content/Documentation/ScriptingAPI-Documentation.md)
### Model import/export:
@@ -194,11 +198,10 @@ In addition, the Editor supports the importing of some common model formats (the
- GLTF 2.0
The preferred workflow is to import models into the Editor, and save them as WISCENE, then any Wicked Engine application can open them.| dx12 | -Use DirectX 12 rendering device* | +Use DirectX 12 rendering device |
| vulkan | -Use Vulkan rendering device** | +Use Vulkan rendering device |
| debugdevice | @@ -223,26 +226,7 @@ You can specify command line arguments (without any prefix) to switch between re
-
-* *DX12 will try to load shaders from WickedEngine/shaders/hlsl6 directory.
-HLSL6 shaders can be compiled by Rebuilding the Shaders_HLSL6 project from within Visual Studio (Python 3 required for building).
-
-* **Vulkan support will be built into the application if the Vulkan SDK is installed on the build machine.
-Vulkan will try to load shaders from WickedEngine/shaders/spirv directory.
-SPIRV shaders can be compiled by Rebuilding the Shaders_SPIRV project from within Visual Studio (Python 3 required for building).
-For Linux builds, spirv shaders will be built by using Cmake system.
-
-