/// <summary> /// Shader building /// </summary> public shader_gl build(shader_t shader, shader_p surface) { if (shader == null) { return(null); } shader_gl glShader = new shader_gl(); glShader.cull = translateCull(shader.cull); glShader.sort = shader.sort; glShader.sky = shader.sky; glShader.blend = shader.blend; glShader.name = shader.name; glShader.sky_env_map = shader.sky_env_map; glShader.stages = new List <stage_gl>(); for (int j = 0; j < shader.stages.Count; ++j) { stage_t t = shader.stages[j]; stage_gl s = new stage_gl(); //s.animFrame = t.animFrame; s.animFreq = t.animFreq; s.animMaps = t.animMaps; //s.animTexture = t.animTexture; s.texture = -1; s.blendSrc = translateBlendSrc(t.blendSrc); s.blendDest = translateBlendDest(t.blendDest); s.depthFunc = translateDepthFunc(t.depthFunc); s.map = t.map; s.tcMods = t.tcMods; s.depthWrite = t.depthWrite; s.isLightmap = t.isLightmap; s.shaderSrc = t.shaderSrc; s.clamp = t.clamp; s.tcGen = t.tcGen; s.rgbGen = t.rgbGen; s.rgbWaveform = t.rgbWaveform; s.alphaGen = t.alphaGen; s.alphaFunc = t.alphaFunc; s.alphaWaveform = t.alphaWaveform; s.hasBlendFunc = t.hasBlendFunc; s.depthWriteOverride = t.depthWriteOverride; s.blend = t.blend; s.opaque = t.opaque; glShader.stages.Add(s); } return(glShader); }
public static void buildShaders(List <shader_t> shaders) { q3bsp.shaders = new Dictionary <string, shader_gl>(); for (var i = 0; i < shaders.Count; ++i) { shader_t shader = shaders[i]; if (shader == null) { continue; } shader_gl glShader = q3bsp.glshading.build(shader, null); String shader_name = shader.name; q3bsp.shaders[shader_name] = glShader; } }