RB.ShaderSet
Method - Static
Parameters
Returns
Nothing.
Description
Set the current shader previously loaded by ShaderAsset.Load. This shader will remain in effect until next call to ShaderSet, RB.ShaderReset, or when the current rendering frame ends.
Example
SpriteSheetAsset
spriteTiles = new SpriteSheetAsset(); SpriteSheetAsset offscreenRaw = new SpriteSheetAsset(); SpriteSheetAsset offscreenRippleMask = new SpriteSheetAsset();
ShaderAsset shaderRipple = new ShaderAsset();
const int LAYER_TERRAIN = 0; const int LAYER_WATER = 1;
void Initialize() { spriteTiles.Load("spritesheet/tiles", new Vector2i(16, 16)); offscreenRaw.Load(RB.DisplaySize); offscreenRippleMask.Load(RB.DisplaySize);
TMXMapAsset map = new TMXMapAsset(); map.Load("map/level1"); map.LoadLayer(map, "terrain", LAYER_TERRAIN); map.LoadLayer(map, "water", LAYER_WATER); RB.MapLayerSpriteSheetSet(LAYER_TERRAIN, spriteTiles); RB.MapLayerSpriteSheetSet(LAYER_WATER, spriteTiles);
shaderRipple.Load("shaders/ripple"); }
void Render() { RB.SpriteSheetSet(spriteTiles);
RB.Offscreen(offscreenRaw); RB.DrawMapLayer(LAYER_TERRAIN);
RB.Offscreen(offscreenRippleMask); RB.DrawMapLayer(LAYER_WATER);
RB.SpriteSheetSet(offscreenRaw);
RB.ShaderSet(shaderRipple);
shaderRipple.FloatSet("wave", RB.Ticks / 25.0f); shaderRipple.SpriteSheetTextureSet("mask_tex", OFFSCREEN_RIPPLE_MASK);
RB.Onscreen(); RB.DrawCopy(new Rect2i(0, 0, RB.DisplaySize.width, RB.DisplaySize.height), Vector2i.zero);
RB.ShaderReset(); } |
See Also
ShaderAsset
RB.ShaderApplyNow
RB.ShaderReset
See Docs
Features - Enabling a Shader
|