Search in sources :

Example 1 with ShaderDescriptor

use of com.talosvfx.talos.runtime.utils.ShaderDescriptor in project HyperLap2D by rednblackgames.

the class ResourceManager method findShaderDescriptorOnLoad.

private ShaderDescriptor findShaderDescriptorOnLoad(String assetName) {
    ShaderDescriptor asset = shaderDescriptorObjectMap.get(assetName);
    if (asset == null) {
        // Look in all paths, and hopefully load the requested asset, or fail (crash)
        final FileHandle file = new FileHandle(talosResPath + File.separator + assetName);
        asset = new ShaderDescriptor();
        if (file.exists()) {
            asset.setData(file.readString());
        }
    }
    return asset;
}
Also used : FileHandle(com.badlogic.gdx.files.FileHandle) ShaderDescriptor(com.talosvfx.talos.runtime.utils.ShaderDescriptor)

Example 2 with ShaderDescriptor

use of com.talosvfx.talos.runtime.utils.ShaderDescriptor in project talos by rockbite.

the class TalosAssetProvider method findShaderDescriptorOnLoad.

private ShaderDescriptor findShaderDescriptorOnLoad(String assetName) {
    ShaderDescriptor asset = shaderDescriptorObjectMap.get(assetName);
    if (asset == null) {
        // Look in all paths, and hopefully load the requested asset, or fail (crash)
        final FileHandle file = findFileByName(assetName);
        asset = new ShaderDescriptor();
        if (file != null && file.exists()) {
            asset.setData(file.readString());
        }
    }
    return asset;
}
Also used : FileHandle(com.badlogic.gdx.files.FileHandle) ShaderDescriptor(com.talosvfx.talos.runtime.utils.ShaderDescriptor)

Example 3 with ShaderDescriptor

use of com.talosvfx.talos.runtime.utils.ShaderDescriptor in project talos by rockbite.

the class ShadedSpriteModuleWrapper method configureSlots.

@Override
protected void configureSlots() {
    addOutputSlot("output", ShadedSpriteModule.OUTPUT);
    dropLabel = new Label("drop .shdr file here", getSkin());
    dropLabel.setAlignment(Align.center);
    dropLabel.setWrap(true);
    contentWrapper.add(dropLabel).padTop(10f).padBottom(10f).size(180, 50).left().expand();
    FileActorBinder.register(this, "shdr");
    addListener(new FileActorBinder.FileEventListener() {

        @Override
        public void onFileSet(FileHandle fileHandle) {
            try {
                String shaderFilePath = fileHandle.path();
                shaderFileName = fileHandle.name();
                setShaderLabel(shaderFileName);
                setShaderDescriptor(new ShaderDescriptor(fileHandle), shaderFileName);
            } catch (Exception e) {
            }
        }
    });
}
Also used : FileActorBinder(com.talosvfx.talos.editor.notifications.FileActorBinder) FileHandle(com.badlogic.gdx.files.FileHandle) Label(com.badlogic.gdx.scenes.scene2d.ui.Label) ShaderDescriptor(com.talosvfx.talos.runtime.utils.ShaderDescriptor)

Example 4 with ShaderDescriptor

use of com.talosvfx.talos.runtime.utils.ShaderDescriptor in project talos by rockbite.

the class ShadedSpriteModule method updateShader.

private void updateShader(ShaderDescriptor shaderDescriptor) {
    this.shaderDescriptor = shaderDescriptor;
    if (shaderDescriptor != null) {
        ShadedDrawable drawable = (ShadedDrawable) outputValue.getDrawable();
        drawable.setShader(shaderDescriptor.getFragCode());
        for (String uniformName : shaderDescriptor.getUniformMap().keys()) {
            ShaderDescriptor.UniformData data = shaderDescriptor.getUniformMap().get(uniformName);
            if (data.type == ShaderDescriptor.Type.TEXTURE) {
                TextureRegion textureRegion = graph.getEffectDescriptor().getAssetProvider().findAsset(data.payload, TextureRegion.class);
                textureMap.put(uniformName, textureRegion);
            }
        }
        drawable.setTextures(textureMap);
    }
}
Also used : ShadedDrawable(com.talosvfx.talos.runtime.render.drawables.ShadedDrawable) TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) ShaderDescriptor(com.talosvfx.talos.runtime.utils.ShaderDescriptor)

Example 5 with ShaderDescriptor

use of com.talosvfx.talos.runtime.utils.ShaderDescriptor in project talos by rockbite.

the class ShadedSpriteModule method setModuleGraph.

@Override
public void setModuleGraph(ParticleEmitterDescriptor graph) {
    super.setModuleGraph(graph);
    final AssetProvider assetProvider = graph.getEffectDescriptor().getAssetProvider();
    if (shdrFileName != null && !shdrFileName.isEmpty()) {
        setShaderData(assetProvider.findAsset(shdrFileName, ShaderDescriptor.class), shdrFileName);
    }
    updateShader(shaderDescriptor);
}
Also used : AssetProvider(com.talosvfx.talos.runtime.assets.AssetProvider) ShaderDescriptor(com.talosvfx.talos.runtime.utils.ShaderDescriptor)

Aggregations

ShaderDescriptor (com.talosvfx.talos.runtime.utils.ShaderDescriptor)6 FileHandle (com.badlogic.gdx.files.FileHandle)3 TextureRegion (com.badlogic.gdx.graphics.g2d.TextureRegion)2 Texture (com.badlogic.gdx.graphics.Texture)1 Label (com.badlogic.gdx.scenes.scene2d.ui.Label)1 FileActorBinder (com.talosvfx.talos.editor.notifications.FileActorBinder)1 AssetProvider (com.talosvfx.talos.runtime.assets.AssetProvider)1 ShadedDrawable (com.talosvfx.talos.runtime.render.drawables.ShadedDrawable)1 VectorField (com.talosvfx.talos.runtime.utils.VectorField)1