本文整理汇总了C#中GraphicsContext.SetTexture方法的典型用法代码示例。如果您正苦于以下问题:C# GraphicsContext.SetTexture方法的具体用法?C# GraphicsContext.SetTexture怎么用?C# GraphicsContext.SetTexture使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GraphicsContext
的用法示例。
在下文中一共展示了GraphicsContext.SetTexture方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: render
public override void render(GraphicsContext context)
{
if (vertexBuffer == null) return;
program.SetUniformValue(0, ref sceneTransform);
program.SetUniformValue(1, ref screenMatrix);
program.SetUniformValue(2, 1f);
context.SetShaderProgram(program);
context.SetVertexBuffer(0, vertexBuffer);
context.SetTexture(0, texture);
context.DrawArrays(DrawMode.TriangleFan, 0, vertexBuffer.VertexCount);
context.SetTexture(0, null);
}
示例2: Filter
/// フィルタ処理の実行
public void Filter( GraphicsContext graphics )
{
texRenderer.BindGraphicsContext( graphics );
FrameBuffer oldBuffer = graphics.GetFrameBuffer();
bool isSwap = false;
int width = oldBuffer.Width;
int height = oldBuffer.Height;
if( this.Target != null ){
graphics.SetFrameBuffer( this.Target );
width = this.Target.Width;
height = this.Target.Height;
isSwap = true;
}
graphics.SetViewport( 0, 0, width, height );
texRenderer.Begin( shaderDOF );
graphics.SetTexture( 2, texDepth );
texRenderer.Render( texScene,
texBlur,
0, 0, 0, 0, width, height );
texRenderer.End();
if( isSwap ){
graphics.SetFrameBuffer( oldBuffer );
}
}
示例3: setLayers
/// Material::Layer の設定を Shader に作用する
void setLayers(
GraphicsContext graphics,
BasicProgram program,
BasicMaterial material
)
{
if( material.Layers == null ){
return ;
}
Texture texture = null ;
int layerCount = (material.Layers.Length <= 3) ? material.Layers.Length : 3;
program.SetTexCount( layerCount );
int texID = 0;
if( NormalizeCubeMap != null ){
graphics.SetTexture( texID, NormalizeCubeMap );
texID++;
}
for( int i = 0; i < layerCount; i++ ){
BasicLayer layer = material.Layers[ i ];
texture = Textures[ layer.Texture ].Texture ;
if( texture != null ){
// TexAnimation
if( layer.TexAnimBoneIdx >= 0 ){
Vector3 st = new Vector3();
st.X = 1.0f - Bones[ layer.TexAnimBoneIdx ].Scaling.X;
st.Y = 1.0f - Bones[ layer.TexAnimBoneIdx ].Scaling.Y;
st.Z = 1.0f - Bones[ layer.TexAnimBoneIdx ].Scaling.Z;
texAnims[ i ] = Matrix4.Transformation( Bones[ layer.TexAnimBoneIdx ].Translation + st,
Bones[ layer.TexAnimBoneIdx ].Rotation,
Bones[ layer.TexAnimBoneIdx ].Scaling ) ;
}else{
texAnims[ i ] = Matrix4.Identity;
}
texture.SetWrap( (TextureWrapMode)layer.TexWrapU,
(TextureWrapMode)layer.TexWrapV );
texture.SetFilter( (TextureFilterMode)layer.magFilter,
(TextureFilterMode)layer.minFilter,
(TextureFilterMode)layer.mipFilter );
// graphics.SetTexture( i + 1, texture );
graphics.SetTexture( texID, texture );
texID++;
}
program.SetTexMtx( texAnims );
program.SetTexCoord( i, material.Layers[ i ].TexCoord );
program.SetTangentID( material.Layers[ i ].TangentID );
program.SetTexType( i, material.Layers[ i ].TexType );
program.SetTexBlendFunc( i, material.Layers[ i ].TexBlendFunc );
}
}
示例4: render
public override void render(GraphicsContext context)
{
if (dirtyBuffer) {
validateBuffer();
}
if (vertexBuffer == null) return;
program.SetUniformValue(0, ref sceneTransform);
program.SetUniformValue(1, ref screenMatrix);
program.SetUniformValue(2, (float) sceneAlpha);
context.SetShaderProgram(program);
context.SetVertexBuffer(0, vertexBuffer);
if (program == shaderUniversal) context.SetTexture(0, texture);
context.DrawArrays(DrawMode.Triangles, 0, vertexBuffer.VertexCount);
if (program == shaderUniversal) context.SetTexture(0, null);
}