-Demos:
*added ImGUI styles *added new assets (fonts, shaders) *added cimgui.dll *added imports for bindbc-sdl (for WASM) *added simple demo *added demo launcher *added snake demo *impoved demo utils *added cimgui.bc library for WASM -improved wasm build script -small change in vector
This commit is contained in:
parent
73f2aa6861
commit
cb7609dcaa
82 changed files with 11188 additions and 413 deletions
102
demos/utils/source/ecs_utils/gfx/config.d
Normal file
102
demos/utils/source/ecs_utils/gfx/config.d
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
module ecs_utils.gfx.config;
|
||||
|
||||
import bindbc.sdl;
|
||||
|
||||
import ecs.std;
|
||||
|
||||
import ecs_utils.gfx.material;
|
||||
import ecs_utils.gfx.mesh;
|
||||
import ecs_utils.gfx.texture;
|
||||
|
||||
//import mutils.serializer.json;
|
||||
|
||||
extern(C):
|
||||
|
||||
enum LayerType
|
||||
{
|
||||
normal,
|
||||
sorted
|
||||
}
|
||||
|
||||
import ecs.vector;
|
||||
|
||||
static struct GfxConfig
|
||||
{
|
||||
extern(C):
|
||||
__gshared:
|
||||
Vector!LayerType layers;
|
||||
//Vector!Mesh meshes;
|
||||
//Vector!Material materials;
|
||||
Mesh[] meshes;
|
||||
Material[] materials;
|
||||
|
||||
static bool load(const (char)[] path) nothrow
|
||||
{
|
||||
struct LoadData
|
||||
{
|
||||
struct Str
|
||||
{
|
||||
@("malloc") string str;
|
||||
}
|
||||
|
||||
@("malloc") Str[] materials;
|
||||
@("malloc") Str[] meshes;
|
||||
int inter;
|
||||
|
||||
void dispose() nothrow
|
||||
{
|
||||
/*if(blend_mode)Mallocator.instance.dispose(cast(char[])blend_mode);
|
||||
if(vertex)Mallocator.instance.dispose(cast(char[])vertex);
|
||||
if(fragment)Mallocator.instance.dispose(cast(char[])fragment);*/
|
||||
}
|
||||
}
|
||||
|
||||
char[] cpath = (cast(char*)alloca(path.length+1))[0..path.length+1];
|
||||
cpath[0..$-1] = path[0..$];
|
||||
cpath[$-1] = 0;
|
||||
|
||||
SDL_RWops* file = SDL_RWFromFile(cpath.ptr,"r");
|
||||
if(file)
|
||||
{
|
||||
size_t size = cast(size_t)SDL_RWsize(file);
|
||||
char[] buffer = Mallocator.makeArray!char(size);
|
||||
SDL_RWread(file,buffer.ptr,size,1);
|
||||
|
||||
LoadData load_data;
|
||||
scope(exit)load_data.dispose();
|
||||
|
||||
/*JSONSerializer serializer = Mallocator.make!JSONSerializer;
|
||||
scope(exit)Mallocator.dispose(serializer);
|
||||
serializer.serialize!(Load.yes, true)(load_data,buffer);*/
|
||||
|
||||
//if(__ecs_used_backend == Backend.opengl)
|
||||
{
|
||||
meshes = Mallocator.makeArray!Mesh(load_data.meshes.length);
|
||||
foreach(i,ref mesh; meshes)
|
||||
{
|
||||
mesh.load(load_data.meshes[i].str);
|
||||
mesh.uploadData();
|
||||
}
|
||||
}
|
||||
|
||||
materials = Mallocator.makeArray!Material(load_data.materials.length);
|
||||
foreach(i,ref material; materials)
|
||||
{
|
||||
material.create();
|
||||
material.load(load_data.materials[i].str);
|
||||
material.compile();
|
||||
}
|
||||
|
||||
SDL_RWclose(file);
|
||||
load_data.dispose();
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
|
||||
static int addLayer(LayerType type)
|
||||
{
|
||||
layers.add(type);
|
||||
return cast(int)(layers.length-1);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue