Sign in to follow this  
buk110

GDITexture - 3D

Recommended Posts

I'm currently trying to draw some text in a 3D Application and am having zero luck.

Currently, I'm using the ESRI ArcGlobe control which is a 3D Globe. I've inserted that inside of a control that inherits from OpenGLControl so I can have access to the override void glDraw()

I'm trying the following code but no such luck. NOTE: Most of this code comes from the sample gdiFont.cs file

[code]GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
GL.glLoadIdentity();
GL.glTranslated(0,0,-1000);
GL.glRotated(35 , 1, 1.2 , 0.2);
GL.glScaled(2,2,2);

GL.glPushMatrix();
GL.glColor3f(1,0,0);
GL.glRotated(180,0,1,0);

myFont.DrawString("TEST");[/code]


Any ideas? Anyone ever do something like this before where a control is chaining inheritance?

Share this post


Link to post
Share on other sites
The code itself looks fine, you'd have to give us more information about the inheritance part, probably both classes, and what exactly do you mean by "no luck", does it crash? does anything appear on the screeen?

Share this post


Link to post
Share on other sites
[quote name='Caste' timestamp='1313028992' post='4847455']
The code itself looks fine, you'd have to give us more information about the inheritance part, probably both classes, and what exactly do you mean by "no luck", does it crash? does anything appear on the screeen?
[/quote]


Sure, by no luck I mean nothing shows up on the screen. My inheritance is like this:

ArcGlobeControl : MapControl
MapControl : OpenGLControl


In ArcGlobeControl I do the following

[code]public override void glDraw()
{
GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
GL.glLoadIdentity();
GL.glTranslated(0,0,-1000);
GL.glRotated(35 , 1, 1.2 , 0.2);
GL.glScaled(2,2,2);

GL.glPushMatrix();
GL.glColor3f(1,0,0);
GL.glRotated(180,0,1,0);

myFont.DrawString("TEST");
}[/code]

What's really odd is that I have a separate class, called DataLayer that a Instantiate inside of the GlobeControl and in that I have the following
[code]
protected void SetupOpenGL()
{
myGlobeDisplayEvents = myGlobeControl.GlobeViewer.GlobeDisplay;

myGlobeDisplayEvents.AfterDraw += MyHandler();
}


private void MyHandler(ISceneViewer inSceneViewer)
{
//GL Drawing code
// GL Draw a huge box
// WOW I HAVE A 3D box that shows up on the globe
}
[/code]

However, inside that class I can never seem to create a GDITextureFont. It does create one in the ArcGlobeControl , but not in the DataLayer.

Any thoughts?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this