public LCC3VertexArray(int tag, string name) : base(tag, name) { _elementType = LCC3ElementType.Float; _elementSize = 3; _shouldAllowVertexBuffering = true; _shouldReleaseRedundantContent = true; _semantic = this.DefaultSemantic; }
public string NameOfSemantic(LCC3Semantic semantic) { return null; }
public LCC3ShaderVariableScope VariableScopeForSemantic(LCC3Semantic semantic) { switch (semantic) { case LCC3Semantic.SemanticDrawCountCurrentFrame: case LCC3Semantic.SemanticRandomNumber: case LCC3Semantic.SemanticBoneMatrixCount: case LCC3Semantic.SemanticBoneMatricesGlobal: case LCC3Semantic.SemanticBoneMatricesInvTranGlobal: case LCC3Semantic.SemanticBoneMatricesEyeSpace: case LCC3Semantic.SemanticBoneMatricesInvTranEyeSpace: case LCC3Semantic.SemanticBoneMatricesModelSpace: case LCC3Semantic.SemanticBoneMatricesInvTranModelSpace: return LCC3ShaderVariableScope.ScopeDraw; case LCC3Semantic.SemanticViewMatrix: case LCC3Semantic.SemanticViewMatrixInv: case LCC3Semantic.SemanticViewMatrixInvTran: case LCC3Semantic.SemanticProjMatrix: case LCC3Semantic.SemanticProjMatrixInv: case LCC3Semantic.SemanticProjMatrixInvTran: case LCC3Semantic.SemanticViewProjMatrix: case LCC3Semantic.SemanticViewProjMatrixInv: case LCC3Semantic.SemanticViewProjMatrixInvTran: case LCC3Semantic.SemanticCameraLocationGlobal: case LCC3Semantic.SemanticCameraFrustum: case LCC3Semantic.SemanticViewport: case LCC3Semantic.SemanticIsUsingLighting: case LCC3Semantic.SemanticSceneLightColorAmbient: case LCC3Semantic.SemanticLightIsEnabled: case LCC3Semantic.SemanticLightPositionGlobal: case LCC3Semantic.SemanticLightPositionEyeSpace: case LCC3Semantic.SemanticLightInvertedPositionGlobal: case LCC3Semantic.SemanticLightInvertedPositionEyeSpace: case LCC3Semantic.SemanticLightColorAmbient: case LCC3Semantic.SemanticLightColorDiffuse: case LCC3Semantic.SemanticLightColorSpecular: case LCC3Semantic.SemanticLightAttenuation: case LCC3Semantic.SemanticLightSpotDirectionGlobal: case LCC3Semantic.SemanticLightSpotDirectionEyeSpace: case LCC3Semantic.SemanticLightSpotExponent: case LCC3Semantic.SemanticLightSpotCutoffAngle: case LCC3Semantic.SemanticLightSpotCutoffAngleCosine: case LCC3Semantic.SemanticFogIsEnabled: case LCC3Semantic.SemanticFogColor: case LCC3Semantic.SemanticFogAttenuationMode: case LCC3Semantic.SemanticFogDensity: case LCC3Semantic.SemanticFogStartDistance: case LCC3Semantic.SemanticFogEndDistance: case LCC3Semantic.SemanticFrameTime: case LCC3Semantic.SemanticApplicationTime: case LCC3Semantic.SemanticApplicationTimeSine: case LCC3Semantic.SemanticApplicationTimeCosine: case LCC3Semantic.SemanticApplicationTimeTangent: return LCC3ShaderVariableScope.ScopeScene; default: return LCC3ShaderVariableScope.ScopeNode; } }
public LCC3ShaderVariableConfiguration() { _semantic = LCC3Semantic.SemanticNone; _type = LCC3ElementType.None; }
public LCC3ShaderUniform UniformForSemantic(LCC3Semantic semantic, int semanticIndex) { foreach (LCC3ShaderUniform uniform in _uniformsSceneScope) { if (uniform.Semantic == semantic && uniform.SemanticIndex == semanticIndex) { return uniform; } } foreach (LCC3ShaderUniform uniform in _uniformsNodeScope) { if (uniform.Semantic == semantic && uniform.SemanticIndex == semanticIndex) { return uniform; } } foreach (LCC3ShaderUniform uniform in _uniformsDrawScope) { if (uniform.Semantic == semantic && uniform.SemanticIndex == semanticIndex) { return uniform; } } return null; }
public LCC3ShaderUniform UniformForSemantic(LCC3Semantic semantic) { return this.UniformForSemantic(semantic, 0); }
public LCC3ShaderAttribute AttributeForSemantic(LCC3Semantic semantic, uint semanticIndex) { foreach (LCC3ShaderAttribute attribute in _attributes) { if (attribute.Semantic == semantic && attribute.SemanticIndex == semanticIndex) { return attribute; } } return null; }
public LCC3ShaderAttribute AttributeForSemantic(LCC3Semantic semantic) { return this.AttributeForSemantic(semantic, 0); }
public void PopulateFrom(LCC3VertexArray anotherArray) { base.PopulateFrom(anotherArray); _semantic = anotherArray.Semantic; _elementType = anotherArray.ElementType; _elementSize = anotherArray.ElementSize; _vertexStride = anotherArray.VertexStride; _elementOffset = anotherArray.ElementOffset; _shouldNormalizeContent = anotherArray.ShouldNormalizeContent; _shouldAllowVertexBuffering = anotherArray.ShouldAllowVertexBuffering; _shouldReleaseRedundantContent = anotherArray.ShouldReleaseRedundantContent; this.DeleteGraphicsBuffer(); if (anotherArray.AllocatedVertexCapacity > 0) { this.AllocatedVertexCapacity = anotherArray.AllocatedVertexCapacity; _vertices = (object[])anotherArray.Vertices.Clone(); } else { _vertices = anotherArray.Vertices; } _vertexCount = anotherArray.VertexCount; }
private void MapVarNameToSemantic(string name, LCC3Semantic semantic, LCC3ElementType elementType, uint size=1) { this.MapVarNameToSemantic(name, semantic, 0, elementType, size); }
private void MapVarNameToSemantic(string name, LCC3Semantic semantic, uint semanticIndex, LCC3ElementType elementType, uint size=1) { LCC3ShaderVariableConfiguration varConfig = new LCC3ShaderVariableConfiguration(); varConfig.Name = name; varConfig.Semantic = semantic; varConfig.SemanticIndex = semanticIndex; varConfig.Type = elementType; varConfig.Size = size; this.AddVariableConfiguration(varConfig); }
public LCC3ShaderUniform UniformOverrideForSemantic(LCC3Semantic semantic, int semanticIndex) { foreach (LCC3ShaderUniform uniform in _uniforms) { if (uniform.Semantic == semantic && uniform.SemanticIndex == semanticIndex) { return uniform; } } return this.AddUniformOverrideForUniform(_program.UniformForSemantic(semantic, semanticIndex)); }
public LCC3VertexArray VertexArrayForSemanticAtIndex(LCC3Semantic vertexSemantic, uint semanticIndex) { switch (vertexSemantic) { case LCC3Semantic.SemanticVertexLocation: return this.VertexLocations; case LCC3Semantic.SemanticVertexNormal: return this.VertexNormals; case LCC3Semantic.SemanticVertexTangent: return this.VertexTangents; case LCC3Semantic.SemanticVertexBitangent: return this.VertexBitangents; case LCC3Semantic.SemanticColor: return this.VertexColors; case LCC3Semantic.SemanticVertexWeights: return this.VertexWeights; case LCC3Semantic.SemanticVertexMatrixIndices: return this.VertexMatrixIndices; case LCC3Semantic.SemanticPointSize: return this.VertexPointSizes; case LCC3Semantic.SemanticVertexTexture: return this.VertexTextureCoords; default: return null; } }