Testing textures and shaders in scripting.
This commit is contained in:
@ -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) {
|
||||
|
6
src/script/api/asset.d.ts
vendored
6
src/script/api/asset.d.ts
vendored
@ -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;
|
@ -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);
|
||||
}
|
10
src/script/api/display.d.ts
vendored
10
src/script/api/display.d.ts
vendored
@ -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;
|
Reference in New Issue
Block a user