Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - MrDoomMaster

Pages: [1]

In Visual Studio 9, I setup my application to statically link to the MSVC libraries via "Multithreaded Debug" instead of "Multithreaded Debug DLL". When I do so, simply having "sfml-window-s-d.lib" in my additional libraries causes the linker to spit out the following errors (these are only just a few of many):
Code: [Select]
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z) already defined in libcpmtd.lib(stdthrow.obj)
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: void __thiscall std::_Container_base_secure::_Orphan_all(void)const " (?_Orphan_all@_Container_base_secure@std@@QBEXXZ) already defined in InputRegistry.obj
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: __thiscall std::_Container_base_secure::~_Container_base_secure(void)" (??1_Container_base_secure@std@@QAE@XZ) already defined in InputRegistry.obj
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) already defined in libcpmtd.lib(xlock.obj)
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z) already defined in libcpmtd.lib(xlock.obj)
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in InputRegistry.obj
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in InputRegistry.obj

Window / sf::Key::Code::Count issue
« on: February 04, 2008, 08:17:40 pm »

I may be completely misunderstanding something, but the sf::Key::Code::Count enumerated member doesn't seem valid. For most of the enumerations in sf::Key::Code, they've been given explicit values. Thus, the 'count' member actually gives a number over 300, when there are only about 60+ enumerations.

This seems like an error and I thought I'd bring it up.

Feature requests / Automatic key repeat
« on: February 04, 2008, 07:57:03 pm »

I would like to request a method off of sf::Window that provides the user the ability to enable or disable automatic key repeat. When a key is held down, the user constantly receives KeyPressed messages. I would like an option to disable the automatic generation of these messages.

For now I have to have an external array of booleans representing which key is already held down, and ignore the message if that key is held down. This isn't an ideal solution, as I believe SFML could (and should) handle this better.

From a design standpoint having such an option would be more efficient as well, since the messages wouldn't need to travel as far before being ignored.


Feature requests / Resize events
« on: January 29, 2008, 10:18:12 pm »

Note first of all that this discussion applies to the Windows platform.

In my specific application utilizing SFML, my themes are set in such a way that the size of the window updates dynamically as the user drags an edge, versus the alternative which only updates the window size after the user releases the edge (in this case you have a light grey outline of the new size to guide the sizing operation).

Due to the way the sizing works, clicking and holding an edge causes the ProcessEvents() function to block until it is released. This continuously fills the message pump with WM_SIZE messages, which in turn causes a ton of sf::Event::Resized events to occur in one iteration of the game loop. Instead, I am only interested in receiving a single Resized event with the final size of the window.

So for example, if I grab the right edge of the window and move it from a size of 800x600 to a size of 800x1000, then I would probably get around 100 or 200 Resized messages. Each message represents a small increment of movement towards the final size. For example:


As you can see, the only Resized message I'm interested in is the last one. This is why I propose the implementation of a Event::ResizeBegin and a Event::ResizeEnd (or something similar, yet portable).

With a ResizeEnd message, the Event::Size member would contain the size of the final size of the window. Note that internally for performance reasons you may want to find a way to ignore the continuous flood of WM_SIZE messages. They do build up to quite a big collection.

Let me know if I'm on the right track. I want to make sure I'm not misunderstanding anything.

Graphics / GL_INVALID_VALUE generated from glClearColor()?
« on: January 28, 2008, 07:38:06 pm »

RenderWindow::Display() eventually leads to glClearColor() being called at line 234 in RenderWindow.cpp. the member RenderWindow::myBackgroundColor is:


This is a very weird issue and I'm not sure why it would be throwing this error. The values look valid to me.

General discussions / Adding SFML vs2008 projects to my solution...
« on: January 28, 2008, 07:19:27 pm »

Currently I have my game in a vs2008 Project. I externally link to the SFML repository, and it would be nice to be able to include the SFML vs2008 project to my own solution. By doing so, when I get updates my solution will automatically build the SFML libraries when I try to build my game. My game project, of course, would put a dependency on the SFML project in my solution settings.

However, I cannot do this because of the way your project is setup. Right now to add SFML to my solution, I'll be adding around 6 projects and I'll also have to setup your SFML project dependencies again, which can change at any time. It's not practical to add SFML to my solution at this time.

Is there any way I can add SFML to my solution easily? Could you possibly change the way the SFML project is structured, so that it uses only 1 project? I don't think adding solutions to solutions is possible.

Any help is greatly appreciated. Thank you.

Feature requests / Suggestions for architecture improvements
« on: January 25, 2008, 11:22:36 pm »
For the platform implementation classes, is there any reason why you're not using CRTP? The virtual functions seem unnecessary.

The name sf::RenderWindow::Display() seems a bit weird to me, how about something like FlipBuffers() or SwapBuffers()?

The latter suggestion isn't as important as the first. I'd appreciate any feedback. Thank you!


I have more suggestions after having looked through the source a bit more:

- Provide the user the ability to specify depth and stencil bit depths, preferably through the VideoMode object. Currently these values are hard-coded.

General / Relative Cursor Movement
« on: November 30, 2007, 11:57:38 pm »

I was wondering if there was any functionality in SFML to facilitate relative cursor movement. For example, each time the MouseMove event is dispatched it would contain the delta x,y position of the cursor (as compared to its last position) instead of the absolute screen coordinates.

If it doesn't facilitate this behavior, I will need to do so myself. The only way I know how to do this is to manually move the cursor back to the center of the screen each time it is moved and calculate the change that way. Is there a way to set the cursor position? If so, does it generate MouseMove events? If it does, that will also be a problem as it will cause redundant and unauthentic MouseMove events.

Any tips on achieving this? Thanks.

Pages: [1]