Testing textures and shaders in scripting.

This commit is contained in:
2021-09-25 18:35:47 -07:00
parent 6b7bd658c6
commit af58678de8
7 changed files with 52 additions and 42 deletions

View File

@ -7,19 +7,21 @@
#include "asset.h"
void _scriptApiShaderLoad(scriptercontext_t *ctx) {
scripterreturn_t _scriptApiShaderLoad(scriptercontext_t *ctx) {
assetShaderLoad(
duk_to_pointer(ctx, 0),
duk_to_string(ctx, 1),
duk_to_string(ctx, 2)
);
return 0;
}
void _scriptApiTextureLoad(scriptercontext_t *ctx) {
assetShaderLoad(
scripterreturn_t _scriptApiTextureLoad(scriptercontext_t *ctx) {
assetTextureLoad(
duk_to_pointer(ctx, 0),
duk_to_string(ctx, 1)
);
return 0;
}
void scriptsApiAsset(scripter_t *s) {

View File

@ -3,8 +3,6 @@
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
declare function assetShaderLoad(
shader:Shader, fileVertex:string, fileFrag:string
):void;
declare function assetShaderLoad(shader:Shader, vert:string, frag:string):void;
declare function assetTextureLoad(shader:Shader, texture:Texture):void;
declare function assetTextureLoad(texture:Texture, file:string):void;

View File

@ -141,6 +141,11 @@ scripterreturn_t _scriptShaderUseCamera(scriptercontext_t *ctx) {
return 0;
}
scripterreturn_t _scriptShaderUseTexture(scriptercontext_t *ctx) {
shaderUseTexture(duk_to_pointer(ctx, 0), duk_to_pointer(ctx, 1));
return 0;
}
scripterreturn_t _scriptShaderUsePosition(scriptercontext_t *ctx) {
shaderUsePosition(
duk_to_pointer(ctx, 0),
@ -172,6 +177,21 @@ scripterreturn_t _scriptShaderUsePositionAndScale(scriptercontext_t *ctx) {
return 0;
}
scripterreturn_t _scriptTextureCreate(scriptercontext_t *ctx) {
texture_t *texture = malloc(sizeof(texture_t));
duk_push_pointer(ctx, texture);
return 1;
}
scripterreturn_t _scriptTextureDispose(scriptercontext_t *ctx) {
texture_t *texture = duk_to_pointer(ctx, 0);
textureDispose(texture);
free(texture);
return 0;
}
void scriptsApiDisplay(scripter_t *s) {
scripterDefineMethod(s, "primitiveCreate", 0, &_scriptPrimitiveCreate);
scripterDefineMethod(s, "primitiveInit", 3, &_scriptPrimitiveInit);
@ -191,9 +211,13 @@ void scriptsApiDisplay(scripter_t *s) {
scripterDefineMethod(s, "shaderInit", 3, &_scriptShaderInit);
scripterDefineMethod(s, "shaderDispose", 1, &_scriptShaderDispose);
scripterDefineMethod(s, "shaderUse", 1, &_scriptShaderUse);
scripterDefineMethod(s, "shaderUseTexture", 2, &_scriptShaderUseTexture);
scripterDefineMethod(s, "shaderUseCamera", 2, &_scriptShaderUseCamera);
scripterDefineMethod(s, "shaderUsePosition", 7, &_scriptShaderUsePosition);
scripterDefineMethod(
s, "shaderUsePositionAndScale", 10, &_scriptShaderUsePositionAndScale
);
scripterDefineMethod(s, "textureCreate", 0, &_scriptTextureCreate);
scripterDefineMethod(s, "textureDispose", 1, &_scriptTextureDispose);
}

View File

@ -56,6 +56,8 @@ declare function shaderDispose(shader:Shader):void;
declare function shaderUse(shader:Shader):void;
declare function shaderUseTexture(shader:Shader, texture:Texture):void;
declare function shaderUseCamera(shader:Shader, camera:Camera):void;
declare function shaderUsePosition(shader:Shader,
@ -67,4 +69,10 @@ declare function shaderUsePositionAndScale(shader:Shader,
x:number, y:number, z:number,
pitch:number, yaw:number, roll:number,
sx:number, sy:number, sz:number
):void;
):void;
////////////////////////////////////////////////////////////////////////////////
declare function textureCreate():Texture;
declare function textureDispose(texture:Texture):void;