本文整理汇总了C#中Microsoft.Xna.Framework.Graphics.Effect.InitGL方法的典型用法代码示例。如果您正苦于以下问题:C# Effect.InitGL方法的具体用法?C# Effect.InitGL怎么用?C# Effect.InitGL使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Xna.Framework.Graphics.Effect
的用法示例。
在下文中一共展示了Effect.InitGL方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SceneControl
public SceneControl(ScreenComponent manager, string style = "")
: base(manager, style)
{
player = manager.Player;
camera = manager.Camera;
Manager = manager;
simpleShader = manager.Game.Content.Load<Effect>("simple");
simpleShader.InitGL ();
sunTexture = manager.Game.Content.LoadTexture2DFromFile("./Assets/OctoAwesome.Client/sun.png", manager.GraphicsDevice);
List<Bitmap> bitmaps = new List<Bitmap>();
var definitions = DefinitionManager.GetBlockDefinitions();
foreach (var definition in definitions)
bitmaps.AddRange(definition.Textures);
int size = (int)Math.Ceiling(Math.Sqrt(bitmaps.Count));
Bitmap blocks = new Bitmap(size * TEXTURESIZE, size * TEXTURESIZE);
using (Graphics g = Graphics.FromImage(blocks))
{
int counter = 0;
foreach (var bitmap in bitmaps)
{
int x = counter % size;
int y = (int)(counter / size);
g.DrawImage(bitmap, new System.Drawing.Rectangle(TEXTURESIZE * x, TEXTURESIZE * y, TEXTURESIZE, TEXTURESIZE));
counter++;
}
}
using (MemoryStream stream = new MemoryStream())
{
blocks.Save(stream, ImageFormat.Png);
stream.Seek(0, SeekOrigin.Begin);
blockTextures = Texture2D.FromStream(manager.GraphicsDevice, stream);
}
planet = ResourceManager.Instance.GetPlanet(0);
// TODO: evtl. Cache-Size (Dimensions) VIEWRANGE + 1
int range = ((int)Math.Pow(2, VIEWRANGE) - 2) / 2;
localChunkCache = new LocalChunkCache(ResourceManager.Instance.GlobalChunkCache, VIEWRANGE, range, false);
chunkRenderer = new ChunkRenderer[
(int)Math.Pow(2, VIEWRANGE) * (int)Math.Pow(2, VIEWRANGE),
planet.Size.Z];
orderedChunkRenderer = new List<ChunkRenderer>(
(int)Math.Pow(2, VIEWRANGE) * (int)Math.Pow(2, VIEWRANGE) * planet.Size.Z);
for (int i = 0; i < chunkRenderer.GetLength(0); i++)
{
for (int j = 0; j < chunkRenderer.GetLength(1); j++)
{
ChunkRenderer renderer = new ChunkRenderer(simpleShader, manager.GraphicsDevice, camera.Projection, blockTextures);
chunkRenderer[i, j] = renderer;
orderedChunkRenderer.Add(renderer);
}
}
// Entfernungsarray erzeugen
//for (int x = -VIEWRANGE; x <= VIEWRANGE; x++)
// for (int y = -VIEWRANGE; y <= VIEWRANGE; y++)
// for (int z = 0; z <= planet.Size.Z; z++)
// distances.Add(new Index3(x, y, z));
//distances = distances.OrderBy(d => d.LengthSquared()).ToList();
backgroundThread = new Thread(BackgroundLoop);
backgroundThread.Priority = ThreadPriority.Lowest;
backgroundThread.IsBackground = true;
backgroundThread.Start();
selectionLines = new[]
{
new VertexPositionColor(new Vector3(-0.001f, +1.001f, +1.001f), Microsoft.Xna.Framework.Color.Black * 0.5f),
new VertexPositionColor(new Vector3(+1.001f, +1.001f, +1.001f), Microsoft.Xna.Framework.Color.Black * 0.5f),
new VertexPositionColor(new Vector3(-0.001f, -0.001f, +1.001f), Microsoft.Xna.Framework.Color.Black * 0.5f),
new VertexPositionColor(new Vector3(+1.001f, -0.001f, +1.001f), Microsoft.Xna.Framework.Color.Black * 0.5f),
new VertexPositionColor(new Vector3(-0.001f, +1.001f, -0.001f), Microsoft.Xna.Framework.Color.Black * 0.5f),
new VertexPositionColor(new Vector3(+1.001f, +1.001f, -0.001f), Microsoft.Xna.Framework.Color.Black * 0.5f),
new VertexPositionColor(new Vector3(-0.001f, -0.001f, -0.001f), Microsoft.Xna.Framework.Color.Black * 0.5f),
new VertexPositionColor(new Vector3(+1.001f, -0.001f, -0.001f), Microsoft.Xna.Framework.Color.Black * 0.5f),
};
billboardVertices = new[]
{
new VertexPositionTexture(new Vector3(-0.5f, 0.5f, 0), new Vector2(0, 0)),
new VertexPositionTexture(new Vector3(0.5f, 0.5f, 0), new Vector2(1, 0)),
new VertexPositionTexture(new Vector3(-0.5f, -0.5f, 0), new Vector2(0, 1)),
new VertexPositionTexture(new Vector3(0.5f, 0.5f, 0), new Vector2(1, 0)),
new VertexPositionTexture(new Vector3(0.5f, -0.5f, 0), new Vector2(1, 1)),
new VertexPositionTexture(new Vector3(-0.5f, -0.5f, 0), new Vector2(0, 1)),
};
selectionIndeces = new short[]
{
0, 1, 0, 2, 1, 3, 2, 3,
4, 5, 4, 6, 5, 7, 6, 7,
0, 4, 1, 5, 2, 6, 3, 7
//.........这里部分代码省略.........