public void Draw(int LightMapIndex, int ColorMapIndex, int OffsetIndex1, int OffsetIndex2) { if (Resources.Count > 0) { try { TagShad H2BspShader = null; MdxRender.Dev.Indices = IndexData; MdxRender.Dev.SetStreamSource(0, VertData, 0); //MdxRender.Dev.RenderState.FillMode = FillMode.WireFrame ; MdxRender.Dev.VertexFormat = H2_BSP_VERTS.Format; for (int y = 0; y < ResourceHeader.InfoChunkCount; y++) { //Set the Shader //ResourceInfo[y].ShaderIndex H2BspShader = MdxRender.SM.GetH2BspShader(ResourceInfo[y].ShaderIndex); //MdxRender.SM.ConfigureLightmapForBlend2(LightMapIndex,ColorMapIndex,OffsetIndex1,OffsetIndex2); MdxRender.SM.ConfigureLightmapForBlend(LightMapIndex, OffsetIndex1); H2BspShader.ActivateShaderWithLightmap(ref MdxRender.SM.m_TextureManager); MdxRender.Dev.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0, VertexCount, ResourceInfo[y].IndexStart, ResourceInfo[y].IndexCount / 3); } } catch (Exception e) { } } }
public void ShadString(string ingresado, string esperado) { var nombre = @"\shad"; var ingresado2 = nombre + ingresado; var esperado2 = nombre + esperado; var tag = new TagShad(ingresado2); Assert.AreEqual(esperado2, tag.ToString()); }
public TagShad GetH2BspShader(int index) { TagShad ts = null; if (m_LookupTable[index].type == ShaderType.Shad) { ts = (TagShad)m_ShadArray[m_LookupTable[index].index]; } return(ts); }
void LoadShadShader(TagFileName tfn) { TagShad shdr = new TagShad(); try { shdr.LoadTagBuffer(tfn); shdr.LoadTagData(); shdr.LoadTextures(ref m_TextureManager, this.MaxTextureStages); } catch (Exception e) { Trace.WriteLine("Senv Shader Load failed: " + tfn.RelativePath + "(" + e.Message + ")"); shdr.EnableDefaultShading(); } m_LookupTable[LookupCount].index = (short)m_ShadArray.Count; m_ShadArray.Add(shdr); }
/// <summary> /// Call ActivateShader from the model/bsp "draw" function. It will set up /// the appropriate texture stages, etc. /// </summary> public bool ActivateShader(int shader_index, ShaderPass pass) { bool bDoneProcessing = true; if (shader_index < UTIL_SHADER_MAX) { ActivateUtilShader(shader_index); } else { switch (m_LookupTable[shader_index].type) { case ShaderType.Soso: TagSoso tsoso = (TagSoso)m_SosoArray[m_LookupTable[shader_index].index]; if (pass == ShaderPass.First) { tsoso.Pass1(); bDoneProcessing = true; } else if (pass == ShaderPass.Second) { tsoso.Pass2(); bDoneProcessing = true; } break; case ShaderType.Shad: TagShad tshad = (TagShad)m_ShadArray[m_LookupTable[shader_index].index]; tshad.SetupBlendFunction(); tshad.ActivatePass1(ref m_TextureManager); break; case ShaderType.Senv: TagSenv tsenv = (TagSenv)m_SenvArray[m_LookupTable[shader_index].index]; if (pass == ShaderPass.First) { tsenv.Pass1(); bDoneProcessing = true; } break; case ShaderType.Schi: TagSchi tschi = (TagSchi)m_SchiArray[m_LookupTable[shader_index].index]; if (pass == ShaderPass.First) { tschi.TwoStage_Pass1(); bDoneProcessing = true; } break; case ShaderType.Scex: TagScex tscex = (TagScex)m_ScexArray[m_LookupTable[shader_index].index]; if (pass == ShaderPass.First) { tscex.Pass1(); bDoneProcessing = true; } break; case ShaderType.Sgla: TagSgla tsgla = (TagSgla)m_SglaArray[m_LookupTable[shader_index].index]; if (pass == ShaderPass.First) { tsgla.Pass1(); bDoneProcessing = true; } break; case ShaderType.Swat: TagSwat tswat = (TagSwat)m_SwatArray[m_LookupTable[shader_index].index]; if (pass == ShaderPass.First) { tswat.Pass1(); bDoneProcessing = true; } break; default: ShaderBase shdr = new ShaderBase(); shdr.SetupBlendFunction(); break; } } return(bDoneProcessing); }