BetaGUI : BetaGUI 2.5 update - Style system added.

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
Chimelion
Kobold
Posts: 35
Joined: Sun Mar 25, 2007 10:52 am

Post by Chimelion »

Thanks! Defining the material bgui.default and doing the rename as you described did the trick and it now runs a basic window without crashing.
(in hindsight I could have used the bgui.white as well, but chose something else, poorly--it was late.)

So now I see with a white titlebar, my style definition for the titlebar may be out of date... I had just this:

Code: Select all

mBetaGUIStyle = pBetaGUI->createStyle( mBetaGUIStyleName );
//pBetaGUIStyle->mWindow_Background = BetaGUI::WindowStyle("bgui.window", "MgOpen", 12);
mBetaGUIStyle->mWindow_Background = "bgui.window";
mBetaGUIStyle->mFontFace = "MgOpen";
mBetaGUIStyle->mFontSize = 12;

mBetaGUIStyle->addStyle("button", "material: bgui.button; height: 20; center: yes; font-size: 14; decal-width: 10;");
mBetaGUIStyle->addStyle("titlebar", "material: bgui.titlebar; height: 20; font-size: 15;"); 
mBetaGUIStyle->addStyle("textinput", "material: bgui.textinput; height: 20; font-size: 14; decal-width: 5;"); 
But I get the hang of it now, thanks!
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Post by betajaen »

I've been experimenting with image maps, although the whole process is tedious and annoying. I must say it has it's benefits, for one thing all the materials used with a BetaGUI skin would reference the same texture, which makes everything more efficient.

This won't be part of BetaGUI 2.5 though, just the the default skin - I have started to port the old images and materials over, using the scale and scroll attributes of the materials, it's come out very sharp and very well ;)

Image

Code: Select all

material bgui.textinput-activeL
{
	technique
	{
		pass
		{
			lighting off
			ambient 1 1 1
			diffuse 1 1 1
			specular 1 1 1 30
			scene_blend alpha_blend
			texture_unit
			{
				texture bgui.button-full.png
				scale 12.8 6.4
				scroll -0.4609375 0.046875
			}
		}
	}
}
In BetaGUI3, I can just streamline the process. There isn't any reason why the user could just specify a coordinates set in the image as part of the style and use it that way. Just like the sprite technique in CSS.
User avatar
shodan
Gnoblar
Posts: 13
Joined: Thu Apr 12, 2007 3:05 am

Post by shodan »

Good stuff betajaen ;-)

Looks great, just what I need for what I'm doing at the mo.
User avatar
WhiskeyJim
Gnoblar
Posts: 20
Joined: Sun May 06, 2007 8:00 am

Post by WhiskeyJim »

Looks extremely good! Wish there'll be something similar for Mogre soon. :)
User avatar
To1ne
Halfling
Posts: 68
Joined: Thu May 10, 2007 3:24 pm

Post by To1ne »

OK, I'm suchs big a noob. I don't know how to get started with betaGUI.

The (few) things I can do:
Open a new OGRE-project (using the Dragon OgreSDKWizard80). Creating a new header file, add the BetaGUI code and add it to the project.
There it stops.

I've been on the Wiki-page, where some example code is, but I just don't know where to place it... :oops: :oops: :oops:

And you posted example code for NxOgre, but I'm not using that!

And about OGRE 1.4, I read that KungFooMasta was telling about BetaGUI was made for 1.2.x????
User avatar
GlobalExplorer
Halfling
Posts: 82
Joined: Sat Oct 14, 2006 12:39 pm
Location: Berlin
x 1

Post by GlobalExplorer »

To1ne wrote:OK, I'm suchs big a noob. I don't know how to get started with betaGUI.

The (few) things I can do:
Open a new OGRE-project (using the Dragon OgreSDKWizard80). Creating a new header file, add the BetaGUI code and add it to the project.
There it stops.

I've been on the Wiki-page, where some example code is, but I just don't know where to place it... :oops: :oops: :oops:

And you posted example code for NxOgre, but I'm not using that!

And about OGRE 1.4, I read that KungFooMasta was telling about BetaGUI was made for 1.2.x????
This is what I have used. It shows a window when F1 is pressed and closes when you press F2. When you click Cancel the do_sth() method will be used.

Just copy over the file where you override ExampleApplication.

WARNING: I just started with this myself. Just thought a complete example was what you are looking for, as the ones in this thread are not. Mind however, that there should be much better approaches.

Code: Select all

#ifndef __Beta_h_
#define __Beta_h_

#include "ExampleApplication.h"

#include "BetaGUI.h"

class BetaGUIListener : public BetaGUI::GUIListener
{
public:
	void do_sth(BetaGUI::Button*, BetaGUI::FocusState)
	{
		//add your code here
	}
};

class BetaFrameListener : public ExampleFrameListener, BetaGUI::GUIListener
{
private:
                SceneManager* mSceneMgr;
	BetaGUI::GUI*   mGUI; 
	BetaGUI::Window* mGUI_ExitWindow; 
	BetaGUI::Button* mGUI_ExitButton; 
	uint mouseX, mouseY; 
	bool mShutdown; 
	OverlayContainer* mPointer;
	BetaGUIListener* mBetaGUIListener;
	Real inputToggle;

      BetaFrameListener(SceneManager *sceneMgr, RenderWindow* win, Camera* cam)
         : ExampleFrameListener(win, cam),
         mSceneMgr(sceneMgr)
	{
		createGUI();
		mBetaGUIListener = &BetaGUIListener();
	}

	  void createGUI() 
	  { 
		  
		mShutdown = false; 
		mouseX = 0; 
		mouseY = 0; 

		// Create the GUI 
		mGUI = new BetaGUI::GUI(mWindow); 
		
		BetaGUI::Style* mBetaGUIStyle = mGUI->createStyle("betagui");
		mBetaGUIStyle->mWindow_Background = "bgui.window";
		mBetaGUIStyle->mFontFace = "MgOpen";
		mBetaGUIStyle->addStyle("button", "background: bgui.button; height: 20; text-align: center; font-size: 14; decal-size: 10;");
		mBetaGUIStyle->addStyle("titlebar", "background: bgui.titlebar; height: 20; font-size: 15;");
		mBetaGUIStyle->addStyle("textinput", "background: bgui.textinput; height: 20; font-size: 12; decal-size: 5;");

		// Create a window 
		mGUI_ExitWindow = mGUI->createWindow(100,100,320,164, "betagui", BetaGUI::WFT_MOVE, "SceneNode Inspector", mBetaGUIListener); 
		mGUI_ExitButton = mGUI_ExitWindow->createButton(8,-4, "Cancel", (BetaGUI::ButtonMethodPtr) &BetaGUIListener::do_sth); 
		
		mPointer=mGUI->createMousePointer("bgui.pointer",50,50);
		
		mGUI_ExitWindow->hide();
		
	} 
	
	bool frameStarted(const FrameEvent& evt)
	{

		using namespace OIS;
		
		mMouse->capture();
		mKeyboard->capture();
		
		//CLASSIC:
		if ( inputToggle >= 0.0f )
           		inputToggle -= evt.timeSinceLastFrame;

		if( mKeyboard->isKeyDown( KC_ESCAPE ) )
            		return false;

		if( (inputToggle < 0.0f) && mKeyboard->isKeyDown(KC_F1))
		{
			inputToggle = 0.5;
			mGUI_ExitWindow->show();	
		}

		if( (inputToggle < 0.0f) && mKeyboard->isKeyDown(KC_F2))
		{
			inputToggle = 0.5;
			mGUI_ExitWindow->hide();	
		}
    
		//BETAGUI:

                                //move the mouse pointer:
		mPointer->setPosition(mMouse->getMouseState().X.abs,mMouse->getMouseState().Y.abs);

		const MouseState &ms = mMouse->getMouseState(); 
		// Mouse injection must be absolute position than relative. 
		mouseX+= mMouse->getMouseState().X.rel; 
		mouseY+= mMouse->getMouseState().Y.rel; 

		if (ms.buttons == 1) 
			mGUI->injectMouse(mouseX, mouseY, true);  // LMB is down. 
		else 
			mGUI->injectMouse(mouseX, mouseY, false); // LMB is not down. 

		return true;
	}
};

class BetaApp : public ExampleApplication
{
	public:
		BetaApp()
      {}

	~BetaApp()
	{
	}

protected:

	virtual void createCamera(void)
	{
      // Create the camera
      mCamera = mSceneMgr->createCamera("PlayerCam");

      // Position it at 500 in Z direction
      mCamera->setPosition(Vector3(0,0,80));
      // Look back along -Z
      mCamera->lookAt(Vector3(0,0,-300));
      mCamera->setNearClipDistance(5);
	}

	// Just override the mandatory create scene method
	virtual void createScene(void)
	{
	}

   // Create new frame listener
	void createFrameListener(void)
	{
      mFrameListener= new BetaFrameListener(mSceneMgr, mWindow, mCamera);
		mRoot->addFrameListener(mFrameListener);
	}
};

#endif // #ifndef __Beta_h_
User avatar
GlobalExplorer
Halfling
Posts: 82
Joined: Sat Oct 14, 2006 12:39 pm
Location: Berlin
x 1

Post by GlobalExplorer »

I would like to know if/how it is possible to change captions, static texts at runtime.
User avatar
To1ne
Halfling
Posts: 68
Joined: Thu May 10, 2007 3:24 pm

Post by To1ne »

Thx GlobalExplorer, but there are some errors:

Code: Select all

void do_sth(BetaGUI::Button*, BetaGUI::FocusState)
error C2039: 'FocusState' : is not a member of 'BetaGUI'

Code: Select all

mBetaGUIListener = &BetaGUIListener();
error C2259: 'BetaGUI::BetaGUIListener' : cannot instantiate abstract class

Code: Select all

mGUI = new BetaGUI::GUI(mWindow);
error C2664: 'BetaGUI::GUI::GUI(const BetaGUI::GUI &)' : cannot convert parameter 1 from 'Ogre::RenderWindow *' to 'const BetaGUI::GUI &'

Code: Select all

BetaGUI::Style* mBetaGUIStyle = mGUI->createStyle("betagui");
error C2039: 'Style' : is not a member of 'BetaGUI'
error C2065: 'Style' : undeclared identifier
error C2065: 'mBetaGUIStyle' : undeclared identifier
error C2039: 'createStyle' : is not a member of 'BetaGUI::GUI'

And some other errors caused by the 'Style' errors (I think).

I'm using OGRE 1.4 on Visual Studio 2005 SP1 and BetaGUI from the Wiki-page (version 015).
I don't know what you are using???

And my project looks like this:
A created a Standard Project with the "Ogre Application Wizard". Project named "BetaGUI".

Header: "BetaGUI.h" with the original BetaGUI code.
CPP: "BetaGUI.cpp" with the from GlobalExplorer (with some subtle build-error-fixes).
User avatar
GlobalExplorer
Halfling
Posts: 82
Joined: Sat Oct 14, 2006 12:39 pm
Location: Berlin
x 1

Post by GlobalExplorer »

To1ne,

Those errors indicate that you have downloaded a different (possible newer) version of BetaGUI, which is constantly changing and improving the names and signatures.

What I can say is that you seem to be having quite a few naming conflicts. For instance, there is no 'BetaGUI::BetaGUIListener in my version, so I could create a class of that name, but it seems that this name is now used by some class in BetaGUI. You also seem to have problems with method interfaces, so you have to adjust them to the new declarations in BetaGUI.

Once I have downloaded the newest version, I might come back to this thread and give you a working sample. It might however be nice if some of the regular users post a similar ExampleApplication, for noobs like us :)

I have only posted my class because you didn`t know where to start. I think it shows you how the various pieces from this thread can be put together, not necessarily how they should, and to get the right functions called when your buttons are clicked.

I saw your post when I had practically just accomplished this - write a first application and see how BetaGUI works, and I thought it helps you a bit.

If you are looking for a better solution, I would recommend you to get advice from the pros, which I am not.

In any case, did you get the OgreSDKWizard? If not, I recommend that, because it is an invaluable help in getting the first projects running, and build up some experience.

Good luck,

GE
User avatar
nikki
Old One
Posts: 2730
Joined: Sat Sep 17, 2005 10:08 am
Location: San Francisco
x 13

Post by nikki »

Wow, betajaen! This is getting better and better! :)

Best of luck!
User avatar
To1ne
Halfling
Posts: 68
Joined: Thu May 10, 2007 3:24 pm

Post by To1ne »

@ GlobalExplorer

I think you're using BetaGUI 2.5 because you use styles. But where can I download it? Can't find the link on the topic...?

I got the code working with some edits from BetaJean's short tutorial. But the program crashes, some error with Hex values, and the code stops in "exampleapplication.h"on line 92 "mRoot->startRendering();".
User avatar
To1ne
Halfling
Posts: 68
Joined: Thu May 10, 2007 3:24 pm

Post by To1ne »

Aah, I found the code of BetaGUI2 (sorry about that).

But still the program crashes (before I got something on the screen):

Code: Select all

Unhandled exception at 0x10cace0a in BetaGUI.exe: 0xC0000005: Access violation reading location 0x00000000.
These are the last lines of Ogre.log:

Code: Select all

12:45:44: Parsing script DP3.overlay
12:45:44: Parsing script Example-CubeMapping.overlay
12:45:44: Parsing script Example-DynTex.overlay
12:45:44: Parsing script Example-Water.overlay
12:45:45: Parsing script Shadows.overlay
12:45:45: Finished parsing scripts for resource group General
12:45:45: Parsing scripts for resource group Internal
12:45:45: Finished parsing scripts for resource group Internal
12:45:45: Mesh: Loading ogrehead.mesh.
12:45:45: Texture: WeirdEye.png: Loading 1 faces(PF_R8G8B8,256x256x1) with  hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
12:45:45: Texture: GreenSkin.jpg: Loading 1 faces(PF_R8G8B8,256x256x1) with  hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
12:45:45: Texture: spheremap.png: Loading 1 faces(PF_R8G8B8,256x256x1) with  hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
12:45:45: D3D9 : ***** Dimensions altered by the render system
12:45:45: D3D9 : ***** Source image dimensions : 96x96
12:45:45: D3D9 : ***** Texture dimensions : 128x128
12:45:45: Texture: dirt01.jpg: Loading 1 faces(PF_R8G8B8,96x96x1) with 7 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
User avatar
nebukadnezzar
Halfling
Posts: 93
Joined: Sun Jun 11, 2006 4:40 pm
Location: Germany
x 1

Post by nebukadnezzar »

To1ne wrote:Aah, I found the code of BetaGUI2 (sorry about that).

But still the program crashes (before I got something on the screen):

Code: Select all

Unhandled exception at 0x10cace0a in BetaGUI.exe: 0xC0000005: Access violation reading location 0x00000000.
These are the last lines of Ogre.log:

Code: Select all

12:45:44: Parsing script DP3.overlay
12:45:44: Parsing script Example-CubeMapping.overlay
12:45:44: Parsing script Example-DynTex.overlay
12:45:44: Parsing script Example-Water.overlay
12:45:45: Parsing script Shadows.overlay
12:45:45: Finished parsing scripts for resource group General
12:45:45: Parsing scripts for resource group Internal
12:45:45: Finished parsing scripts for resource group Internal
12:45:45: Mesh: Loading ogrehead.mesh.
12:45:45: Texture: WeirdEye.png: Loading 1 faces(PF_R8G8B8,256x256x1) with  hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
12:45:45: Texture: GreenSkin.jpg: Loading 1 faces(PF_R8G8B8,256x256x1) with  hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
12:45:45: Texture: spheremap.png: Loading 1 faces(PF_R8G8B8,256x256x1) with  hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
12:45:45: D3D9 : ***** Dimensions altered by the render system
12:45:45: D3D9 : ***** Source image dimensions : 96x96
12:45:45: D3D9 : ***** Texture dimensions : 128x128
12:45:45: Texture: dirt01.jpg: Loading 1 faces(PF_R8G8B8,96x96x1) with 7 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
watch the pointers you are dereferencing - it seems that one of them is null
User avatar
To1ne
Halfling
Posts: 68
Joined: Thu May 10, 2007 3:24 pm

Post by To1ne »

Euh,...???? :?:

Sorry, don't know what to do:(
User avatar
To1ne
Halfling
Posts: 68
Joined: Thu May 10, 2007 3:24 pm

Post by To1ne »

Euh,...???? :?:

Sorry, don't know what to do:(

About:

Code: Select all

#ifndef __Beta_h_
#define __Beta_h_ 
...

#endif
What does it do, is it important?


@ GlobalExplorer

Code: Select all

   void do_sth(BetaGUI::Button*, BetaGUI::FocusState)
   {
      //add your code here
   } 
How do I use that function?
User avatar
CaseyB
OGRE Contributor
OGRE Contributor
Posts: 1335
Joined: Sun Nov 20, 2005 2:42 pm
Location: Columbus, Ohio
x 3

Post by CaseyB »

To1ne wrote:

Code: Select all

#ifndef __Beta_h_
#define __Beta_h_ 
...

#endif
What does it do, is it important?
Yes. It tells the compiler to only include this header once so there aren't any redefinitions.

To1ne wrote:

Code: Select all

   void do_sth(BetaGUI::Button*, BetaGUI::FocusState)
   {
      //add your code here
   } 
How do I use that function?
When you set the BetaGUI::Callback(SomeClass) that class needs to implement that method so BetaGui can call it. You don't call it directly.
Image
Image
User avatar
To1ne
Halfling
Posts: 68
Joined: Thu May 10, 2007 3:24 pm

Post by To1ne »

But how do I use the arguments "BetaGUI::Button*" & "BetaGUI::FocusState" ?

Something like:

Code: Select all

class BetaGUIListener : public BetaGUI::GUIListener
{
public:
	void do_sth(BetaGUI::Button*, BetaGUI::FocusState)
	{
		if (Button == mGUI_ExitButton)
			mShutdown = true; 
	}
};
doesn't work because "mGUI_ExitButton" and "mShutdown" are not yet declared.
Or do I have to make a new function for every button? Or place the code somewhere else?
User avatar
CaseyB
OGRE Contributor
OGRE Contributor
Posts: 1335
Joined: Sun Nov 20, 2005 2:42 pm
Location: Columbus, Ohio
x 3

Post by CaseyB »

The listener class is usually the one that also creates the Gui, so mGUI_ExitButton and mShutdown would be members of that class, so they will have been declared already in the header.
Image
Image
User avatar
To1ne
Halfling
Posts: 68
Joined: Thu May 10, 2007 3:24 pm

Post by To1ne »

But I still have the pointer error!!!

PLZ HELP!!
User avatar
GlobalExplorer
Halfling
Posts: 82
Joined: Sat Oct 14, 2006 12:39 pm
Location: Berlin
x 1

Post by GlobalExplorer »

To1ne, don`t give up. It seems you have some things to learn about C++ yet, but you will finally get there.
To1ne wrote:But how do I use the arguments "BetaGUI::Button*" & "BetaGUI::FocusState" ?

Something like:

Code: Select all

class BetaGUIListener : public BetaGUI::GUIListener
{
public:
	void do_sth(BetaGUI::Button*, BetaGUI::FocusState)
	{
		if (Button == mGUI_ExitButton)
			mShutdown = true; 
	}
};
doesn't work because "mGUI_ExitButton" and "mShutdown" are not yet declared.
Or do I have to make a new function for every button? Or place the code somewhere else?
They are declared in the your ExampleApplication class, so using them in BetaGUIListener (or whatever the child of BetaGUI::GUIListener is called) means they are out of scope.

You might as well put the do_sth() method in your ExampleApplication class and let it derive BetaGUI::GUIListener itself. Then you dont have to worry about scope. This is possibly a better
way to do it than in my somewhat messy example. I just wanted some function to get called, you know, from there on I know what to do ..

The most critcal pieces of code are this:

Code: Select all

mGUI_ExitWindow = mGUI->createWindow(100,100,320,164, "betagui", BetaGUI::WFT_MOVE, "SceneNode Inspector", mBetaGUIListener); 
      mGUI_ExitButton = mGUI_ExitWindow->createButton(8,-4, "Cancel", (BetaGUI::ButtonMethodPtr) &BetaGUIListener::do_sth); 
and this:

Code: Select all

class BetaGUIListener : public BetaGUI::GUIListener 
{ 
public: 
   void do_sth(BetaGUI::Button*, BetaGUI::FocusState) 
   { 
      //add your code here 
   } 
}; 
Because they show how you can get hold of the the crucial last paramter for the BetaGUI::createWindow() and BetaGUI::createButton() methods, telling BetaGUI which functions are to get called.

Also try to understand how to create and move the mouse pointer and inject its position to BetaGUI.

The rest of my code is not really important and can be written much cleaner if you have the time.

If its over your head right now, better start with the more basic problems of writing your own mouse and keyboard input and not calling the ExampleApplicationFrameListener, that helped me a lot. I think it is this tutorial: http://www.ogre3d.org/wiki/index.php/Basic_Tutorial_4

What I would like to see is that someone with a deeper knowledge puts up a minimal BetaGUI application, for absolute beginners like To1ne and me .. It should not require a lot of code.
User avatar
To1ne
Halfling
Posts: 68
Joined: Thu May 10, 2007 3:24 pm

Post by To1ne »

So what version of BetaGUI do you use??
I think it's there where my program crashes (I've commented the code I added)

Or there is something wrong with my resources.cfg file.
I use the "bgui.zip" (found on this topic) and included that one in my resources.

But I'll look into the keyb and mouse inputs..

I really like to use BetaGUI, it's clean and simple. Some basic example code would be real nice!!!
User avatar
GlobalExplorer
Halfling
Posts: 82
Joined: Sat Oct 14, 2006 12:39 pm
Location: Berlin
x 1

Post by GlobalExplorer »

To1ne wrote:So what version of BetaGUI do you use??
I think it's there where my program crashes (I've commented the code I added)
I downloaded it two weeks ago or so I think. Better dont rely on my exact code but try to work from the basic principle:

Create windows and buttons and pass something that derives BetaGUI::GUILIstener, or a function that has the required signature.

Derive BetaGUI::GUILIstener and add the methods you want to get called in that class.

Create a mouse pointer, find a way how to move it in your framelistener. the way I did it worked, but I am not sure its recommended.

Find out how to inject mouse position, or if it is at all required (I think BetaJaen said no - but I had to do it)

Apart from that its over my head as I worked on something else the last two days.
But I'll look into the keyb and mouse inputs..

I really like to use BetaGUI, it's clean and simple. Some basic example code would be real nice!!!
Thats right! Hats off to Betajaen!
User avatar
GlobalExplorer
Halfling
Posts: 82
Joined: Sat Oct 14, 2006 12:39 pm
Location: Berlin
x 1

Post by GlobalExplorer »

I download from here a week or so ago, and from the dates it looks like Betajaen hasnt changed it since then.

http://get.nxogre.org/betagui2/

Moreover, I just learned in another forum that this:

mBetaGUIListener = &BetaGUIListener

is very bad! Use new() instead and delete the object in the destrucotr.
User avatar
To1ne
Halfling
Posts: 68
Joined: Thu May 10, 2007 3:24 pm

Post by To1ne »

nebukadnezzar wrote:
To1ne wrote:Aah, I found the code of BetaGUI2 (sorry about that).

But still the program crashes (before I got something on the screen):

Code: Select all

Unhandled exception at 0x10cace0a in BetaGUI.exe: 0xC0000005: Access violation reading location 0x00000000.
These are the last lines of Ogre.log:

Code: Select all

12:45:44: Parsing script DP3.overlay
12:45:44: Parsing script Example-CubeMapping.overlay
12:45:44: Parsing script Example-DynTex.overlay
12:45:44: Parsing script Example-Water.overlay
12:45:45: Parsing script Shadows.overlay
12:45:45: Finished parsing scripts for resource group General
12:45:45: Parsing scripts for resource group Internal
12:45:45: Finished parsing scripts for resource group Internal
12:45:45: Mesh: Loading ogrehead.mesh.
12:45:45: Texture: WeirdEye.png: Loading 1 faces(PF_R8G8B8,256x256x1) with  hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
12:45:45: Texture: GreenSkin.jpg: Loading 1 faces(PF_R8G8B8,256x256x1) with  hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
12:45:45: Texture: spheremap.png: Loading 1 faces(PF_R8G8B8,256x256x1) with  hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
12:45:45: D3D9 : ***** Dimensions altered by the render system
12:45:45: D3D9 : ***** Source image dimensions : 96x96
12:45:45: D3D9 : ***** Texture dimensions : 128x128
12:45:45: Texture: dirt01.jpg: Loading 1 faces(PF_R8G8B8,96x96x1) with 7 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
watch the pointers you are dereferencing - it seems that one of them is null
Can anybody help me??? The program goes to "ExampleApplication.h" if I press "Break" on the Error-window. What does that mean?
Do I have to add something to "resources.cfg" or "plugins.cfg"?

@ GlobalExplorer
Maybe you can send me your basis-VCProject, so I can start from that.

@ betajaen
At this topic you didn't place anything about OIS-stuff except "// OIS setup code goes here. ". Can we get some code for it too? Or is that piece of code not needed??

@ Everybody
It still would be REAL nice to get a basis-code to start-from for a n00b like me! Not much explaination is needed about that code, just the code:)
User avatar
To1ne
Halfling
Posts: 68
Joined: Thu May 10, 2007 3:24 pm

Post by To1ne »

Ok, I've been really, really, really, really, really, really, really... stupid. :oops: :oops: :oops: :oops:

It appears I've had commented one line, to get rid off the errors:

Code: Select all

	// Create new frame listener
	void createFrameListener(void)
	{
//		mFrameListener= new BetaGUIFrameListener(mSceneMgr, mWindow, mCamera);
		mRoot->addFrameListener(mFrameListener);
	}
So I removed the "//" but then I got a error compiling:

Code: Select all

error C2259: 'BetaGUIFrameListener' : cannot instantiate abstract class
How can I fix that?