Hallo, ich würde gerne in Erfahrung bringen, ob es an den Winforms von seitens Blizzard Änderungen gegeben hat. Ich benutzte derzeit folgenden Code
den ich noch von damals habe, welcher auch funktioniert hat. Allerdings funktioniert es nicht bzw. es wird nichts gerender oder was ich vermute von Seiten Winforms über das gerenderte gerendert, so das es im Hintergrund liegt.
was Interessant zu sagen ist, dasss dieser Code mit einem Timer funktioniert
C#-Quellcode
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace NetGLSampel
- {
- public partial class Form1 : Form
- {
- public NetGL.OpenGL gl { get; set; }
- public bool run { get; set; }
- public float Rotation { get; set; }
- public Form1()
- {
- InitializeComponent();
- this.DoubleBuffered = true;
- this.SetStyle(
- System.Windows.Forms.ControlStyles.UserPaint |
- System.Windows.Forms.ControlStyles.AllPaintingInWmPaint |
- System.Windows.Forms.ControlStyles.OptimizedDoubleBuffer,
- true);
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- private void Form1_Shown(object sender, EventArgs e)
- {
- this.gl = new NetGL.OpenGL();
- gl.Initial(this.Handle);
- System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(TheLoop));
- thread.Start();
- }
- public void TheLoop()
- {
- while(this.Visible)
- {
- gl.Clear(NetGL.OpenGL.ColorBufferBit | NetGL.OpenGL.DepthBufferBit);
- gl.ClearColor(0f, 0f, 0f, 0f);
- gl.MatrixMode(NetGL.OpenGL.Projection);
- gl.LoadIdentity();
- gl.Translate(0f, 0f, -1.0f);
- gl.Scale(0.5f, 0.5f, 0.5f);
- gl.Begin(NetGL.OpenGL.Polygon);
- gl.Color3f(Color.Red.R, Color.Red.G, Color.Red.B);
- gl.Vertex3f(-1f, -1f, 0f);
- gl.Color3f(Color.Blue.R, Color.Blue.G, Color.Blue.B);
- gl.Vertex3f(1f, -1f, 0f);
- gl.Color3f(Color.Green.R, Color.Green.G, Color.Green.B);
- gl.Vertex3f(0f, 1f, 0f);
- gl.End();
- gl.Flush();
- }
- }
- }
- }
den ich noch von damals habe, welcher auch funktioniert hat. Allerdings funktioniert es nicht bzw. es wird nichts gerender oder was ich vermute von Seiten Winforms über das gerenderte gerendert, so das es im Hintergrund liegt.
was Interessant zu sagen ist, dasss dieser Code mit einem Timer funktioniert
C#-Quellcode
-
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace NetGLSampel
- {
- public partial class Form1 : Form
- {
- public NetGL.OpenGL gl { get; set; }
- public bool run { get; set; }
- public float Rotation { get; set; }
- public Form1()
- {
- InitializeComponent();
- this.DoubleBuffered = true;
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- private void Form1_Shown(object sender, EventArgs e)
- {
- this.gl = new NetGL.OpenGL();
- gl.Initial(this.Handle);
- this.timer1.Start();
- }
- private void timer1_Tick(object sender, EventArgs e)
- {
- gl.Clear(NetGL.OpenGL.ColorBufferBit | NetGL.OpenGL.DepthBufferBit);
- gl.ClearColor(0f, 0f, 0f, 0f);
- gl.MatrixMode(NetGL.OpenGL.Projection);
- gl.LoadIdentity();
- gl.Translate(0f, 0f, -1.0f);
- gl.Scale(0.5f, 0.5f, 0.5f);
- gl.Begin(NetGL.OpenGL.Polygon);
- gl.Color3f(Color.Red.R, Color.Red.G, Color.Red.B);
- gl.Vertex3f(-1f, -1f, 0f);
- gl.Color3f(Color.Blue.R, Color.Blue.G, Color.Blue.B);
- gl.Vertex3f(1f, -1f, 0f);
- gl.Color3f(Color.Green.R, Color.Green.G, Color.Green.B);
- gl.Vertex3f(0f, 1f, 0f);
- gl.End();
- gl.Flush();
- }
- }
- }
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Andy“ ()