partial class FormMain
{
private Pixoneer.NXDL.NXImage.NXImageView nxImageView1;
private Pixoneer.NXDL.NXImage.NXImageLayerGPU nxImageLayerGPU1;
public XTextPrinter m_TextPrinter;
public XTextPrinter m_TextPrinter2;
public XTexture m_TexLogo;
private void InitializeComponent()
{
this.nxImageView1 = new Pixoneer.NXDL.NXImage.NXImageView();
this.nxImageLayerGPU1 = new Pixoneer.NXDL.NXImage.NXImageLayerGPU();
this.nxImageLayerGPU1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.nxImageLayerGPU1.Location = new System.Drawing.Point(20, 110);
this.nxImageLayerGPU1.Name = "nxImageLayerGPU1";
this.nxImageLayerGPU1.Size = new System.Drawing.Size(145, 30);
this.nxImageLayerGPU1.TabIndex = 2;
this.nxImageLayerGPU1.Visible = false;
this.nxImageLayerGPU1.OnOrthoRender += new Pixoneer.NXDL.NXImage.NXImageLayerGPU_Event_OrthoRender(this.nxImageLayerGPU1_OnOrthoRender);
this.nxImageLayerGPU1.OnRender += new Pixoneer.NXDL.NXImage.NXImageLayerGPU_Event_Render(this.nxImageLayerGPU1_OnRender);
this.nxImageView1.Controls.Add(this.nxImagLayerGPU1);
}
public FormMain()
{
InitializeComponent();
m_TextPrinter = new XTextPrinter();
Font myFont = new Font("Gulim", 12, FontStyle.Strikeout | FontStyle.Underline | FontStyle.Bold);
m_TextPrinter.Initialize(myFont);
m_TextPrinter2 = new XTextPrinter();
Font myFont2 = new Font("Gulim", 15, FontStyle.Strikeout | FontStyle.Underline | FontStyle.Bold);
m_TextPrinter2.Initialize(myFont2);
m_TexLogo = new XTexture();
m_TexLogo.Load("D:/Images/logo.bmp");
}
private bool nxImageLayerGPU1_OnRender(NXImageLayerGPU sender, NXImageViewDrawArgs DrawArgs)
{
XGraphics g = DrawArgs.Graphics;
g.glBegin(XGraphics.GL_LINES);
g.glColor(Color.Red);
g.glVertex3d(DrawArgs.LLWorld);
g.glVertex3d(DrawArgs.URWorld);
g.glColor3f(1.0f, 1.0f, 1.0f);
g.glEnd();
if (m_TextPrinter != null)
{
XVertex3d vw = DrawArgs.Vertex3d(DrawArgs.MousePosWorld);
m_TextPrinter.Print("hello",
vw,
new XVertex2d(0, 0),
new XVertex2d(0.5, 0.5),
Color.Blue,
true,
Color.Green);
}
return default(bool);
}
private bool nxImageLayerGPU1_OnOrthoRender(NXImageLayerGPU sender, NXImageViewDrawArgs DrawArgs)
{
XGraphics g = DrawArgs.Graphics;
if (m_TexLogo!=null && m_TexLogo.Loaded)
{
if (!m_TexLogo.InDevice)
m_TexLogo.SendTextureToDevice();
g.glDisable(XGraphics.GL_DEPTH_TEST);
g.glEnable(XGraphics.GL_TEXTURE_2D);
g.glBindTexture(XGraphics.GL_TEXTURE_2D, (uint)m_TexLogo.GLTextureID);
g.glColor(Color.White);
g.glBegin(XGraphics.GL_QUADS);
g.glTexCoord2f(0, 1); g.glVertex2d(nxImageView1.Width - 215, nxImageView1.Height - 84);
g.glTexCoord2f(0, 0); g.glVertex2d(nxImageView1.Width - 215, nxImageView1.Height - 10);
g.glTexCoord2f(1, 0); g.glVertex2d(nxImageView1.Width - 10, nxImageView1.Height - 10);
g.glTexCoord2f(1, 1); g.glVertex2d(nxImageView1.Width - 10, nxImageView1.Height - 84);
g.glEnd();
g.glEnable(XGraphics.GL_DEPTH_TEST);
g.glDisable(XGraphics.GL_TEXTURE_2D);
}
if (m_TextPrinter!=null)
{
g.glDisable(XGraphics.GL_DEPTH_TEST);
g.glEnable(XGraphics.GL_BLEND);
g.glBlendFunc(XGraphics.GL_SRC_ALPHA, XGraphics.GL_ONE_MINUS_SRC_ALPHA);
g.glColor4f(0.0f, 0.7f, 0.0f, 0.0f);
g.glBegin(XGraphics.GL_QUADS);
g.glVertex2d(0, nxImageView1.Height - 50);
g.glColor4f(0.7f, 0.0f, 0.7f, 0.0f);
g.glVertex2d(nxImageView1.Width, nxImageView1.Height - 50);
g.glColor4f(0.7f, 0.0f, 0.7f, 0.5f);
g.glVertex2d(nxImageView1.Width, nxImageView1.Height);
g.glColor4f(0.0f, 0.7f, 0.0f, 0.5f);
g.glVertex2d(0, nxImageView1.Height);
g.glEnd();
g.glDisable(XGraphics.GL_BLEND);
g.glEnable(XGraphics.GL_DEPTH_TEST);
XVertex3d posWorld = new XVertex3d(0, 30, 0);
XVertex2d posOffset = new XVertex2d(0, 0);
XVertex2d align = new XVertex2d(0, 0.5);
m_TextPrinter.Print("hello", posWorld, posOffset, align, Color.Red, true, Color.Yellow);
XVertex3d posWorld2 = new XVertex3d(nxImageView1.Width / 2.0, nxImageView1.Height / 2, 0);
XVertex2d posOffset2 = new XVertex2d(0, 0);
XVertex2d align2 = new XVertex2d(0, 0.5);
m_TextPrinter2.Print("world", posWorld2, eTextAlign.Align_Right, Color.Red, true, Color.Green);
posWorld.x = nxImageView1.Width / 2.0;
align.x = 0.5;
}
return default(bool);
}
}