/// <summary> /// /// </summary> /// <param name="program"></param> protected override void DoSetUniform(ShaderProgram program) { if (activeTexture == null) { activeTexture = OpenGL.GetDelegateFor <OpenGL.glActiveTexture>(); } activeTexture(value.activeTextureIndex + OpenGL.GL_TEXTURE0); //OpenGL.BindTexture(OpenGL.GL_TEXTURE_2D, value.TextureId); OpenGL.BindTexture(value.target, value.TextureId); this.Location = program.SetUniform(VarName, value.activeTextureIndex); }
public override void SetUniform(ShaderProgram program) { if (glActiveTexture == null) { glActiveTexture = OpenGL.GetDelegateFor <OpenGL.glActiveTexture>(); } glActiveTexture(value.ActiveTextureIndex); //OpenGL.BindTexture(OpenGL.GL_TEXTURE_2D, value.TextureId); OpenGL.BindTexture(value.target, value.TextureId); program.SetUniform(VarName, value.activeTextureIndex); }
public override void SetUniform(ShaderProgram program) { if (glActiveTexture == null) { glActiveTexture = OpenGL.GetDelegateFor<OpenGL.glActiveTexture>(); } for (int i = 0; i < this.value.Length; i++) { glActiveTexture(this.value[i].ActiveTextureIndex); //OpenGL.BindTexture(OpenGL.GL_TEXTURE_2D, this.value[i].TextureId); OpenGL.BindTexture(this.value[i].target, this.value[i].TextureId); // TODO: assign the first location or last? this.Location = program.SetUniform(VarName, this.value[i].activeTextureIndex); } }
public override void SetUniform(ShaderProgram program) { if (glActiveTexture == null) { glActiveTexture = OpenGL.GetDelegateFor <OpenGL.glActiveTexture>(); } for (int i = 0; i < this.value.Length; i++) { glActiveTexture(this.value[i].ActiveTextureIndex); //OpenGL.BindTexture(OpenGL.GL_TEXTURE_2D, this.value[i].TextureId); OpenGL.BindTexture(this.value[i].target, this.value[i].TextureId); program.SetUniform(VarName, this.value[i].activeTextureIndex); } }
/// <summary> /// /// </summary> /// <param name="program"></param> protected override void DoSetUniform(ShaderProgram program) { if (activeTexture == null) { activeTexture = OpenGL.GetDelegateFor <OpenGL.glActiveTexture>(); } for (int i = 0; i < this.Value.Length; i++) { samplerValue value = this.Value[i]; activeTexture(value.activeTextureIndex + OpenGL.GL_TEXTURE0); //OpenGL.BindTexture(OpenGL.GL_TEXTURE_2D, this.value[i].TextureId); OpenGL.BindTexture(value.target, value.TextureId); // TODO: assign the first location or last? this.Location = program.SetUniform(VarName, value.activeTextureIndex); } }
/// <summary> /// resources(bitmap etc.) can be disposed after this initialization. /// </summary> public void Initialize() { if (!this.initialized) { if (activeTexture == null) { activeTexture = OpenGL.GetDelegateFor <OpenGL.glActiveTexture>(); } activeTexture(this.ActiveTextureIndex + OpenGL.GL_TEXTURE0); OpenGL.GenTextures(1, id); TextureTarget target = this.Target; OpenGL.BindTexture(target, id[0]); this.Sampler.Bind(this.ActiveTextureIndex, target); this.ImageFiller.Fill(); OpenGL.GenerateMipmap((MipmapTarget)((uint)target));// TODO: does this work? //this.SamplerBuilder.Unbind(OpenGL.GL_TEXTURE0 - OpenGL.GL_TEXTURE0, this.Target); OpenGL.BindTexture(this.Target, 0); this.initialized = true; } }
/// <summary> /// resources(bitmap etc.) can be disposed after this initialization. /// </summary> public void Initialize() { if (!this.initialized) { if (activeTexture == null) { activeTexture = OpenGL.GetDelegateFor<OpenGL.glActiveTexture>(); } activeTexture(this.ActiveTextureIndex + OpenGL.GL_TEXTURE0); OpenGL.GenTextures(1, id); TextureTarget target = this.Target; OpenGL.BindTexture(target, id[0]); this.Sampler.Bind(this.ActiveTextureIndex, target); this.ImageFiller.Fill(); //OpenGL.GenerateMipmap((MipmapTarget)((uint)target));// TODO: does this work? //this.SamplerBuilder.Unbind(OpenGL.GL_TEXTURE0 - OpenGL.GL_TEXTURE0, this.Target); OpenGL.BindTexture(this.Target, 0); this.initialized = true; } }