i have downloaded the latest available version of lazarus: 0.9.30.2 in order to attempt to recompile it on my testing linux system running 32bit ubuntu 11.10. i pulled latest sources from subversion and opened Scrabble3D.lpi in lazarus-ide. i am getting an error regarding unmet dependencies:
LCLBase (>=1.0.1) LazOpenGLContext (>=0.0.1)
please do you have any idea where can i get these packages?
LCLBase can be removed safely but LazOpenGL needs to be installed is you want to compile for Gtk. Go to package > configure installed packed > select lazopengl... righthand and recompile Lazarus. This package is part of the LCL but not activated by default. BTW: You need fpc >= 2.6.0 which is the latest release.
thank you, scotty. i've been able to build lazarus from 2.6.0 fpc and then compile scrabble3d. as soon as i started a game i caused the game to segfault with the following error message:
1
TWinControl.WMSize loop detected, the widgetset does not like the LCL bounds or sends unneeded wmsize messages: sbHorizontal:TScrollBar BoundsRealized=l=0,t=286,r=721,b=301 NewBoundsRealized=l=0,t=286,r=0,b=301.
It looks like LCL widgetset was not configured according to your system. LCLWidgetset should be Gtk2 for Linux (or qt, but this requires a much more complex setup). Have a look for these options in project settings, compiler something, widgetset.
If you want to check the multithreading bug that you reported look for it at ubruteforce.pas. The class TSingleOperation is derived from TBoard, and thus gets all current properties. TBruteForce collects possible moves - respective these TSingleOperations - in a list (FProcessing) and runs them parallel at the method RunThreaded(). I know that repeat until with sleep and processmessages is not a good style but I didn't manage feedback with progress bar and quick interaction with other code. Each TSingleOperation calculates words and synchronizes those that are valid within a CriticalSection at the method Run(aThread:TThread). I guess, or better hope, this unit is one of the most elaborated beside core functions in uboard and uscrabble. Just ask if you have more questions.
i am sorry to dissapoint but i am really just a user who wants to help debugging the particular problem, i do not understand fpc or object programming at all :-(
the error is triggered in scenario like this: - multithreading is disabled in options - game - 2 players: human vs ai - computer places the very first word - human player places the first letter according to rules - human player takes the 2nd letter and moves it towards the board - segfault
so what you're saying is that "TWinControl.WMSize loop detected" is caused by incorrectly compiled LCL widgetset, correct? can you please help how to build it right? i did 'make clean all' just as lazarus readme says and then ran it from the compilation directory.
the error is somehow related to moving letters from rack to board. i can even reproduce it when i select 2 human players to play against each other.
first message after the error is triggered:
1 2 3
Project Scrabble3D raised exception class 'External: SIGSEGV'.
At address 8204589
then after i hit OK:
1 2
TWinControl.WMSize loop detected, the widgetset does not like the LCL bounds or sends unneeded wmsize messages: sbHorizontal:TScrollBar BoundsRealized=l=0,t=286,r=721,b=301 NewBoundsRealized=l=0,t=286,r=0,b=301.
But what happens exactly, when you move letters from rack to board in the conditions you described before? Is the game killed? Is it blocked or frozen?
Does that error occur only in Linux, Ubuntu? Maybe in Ubuntu 11.10? Tell me please, because GioRock had told me about some errors which occur just in Ubuntu 11.10. --> Scrabble3D unter UBUNTU 11.10 (in Italian and German)
Since I don't have that debugger, I cannot get those messages...
What happens if you only have Scrabble3D without debugger in the background?
when i do it an error message pops up. then the game gets frozen. the OS is indeed ubuntu 11.10. running from lazarus, i get the extra TWinControl.WMSize message but other than that symptoms are the same. i will try to check out the link to forums (though my german is more than rusty).
ok, so it seems i am having the same issues as giorock. i have run into situations where clicking buttons did nothing, even closing button [x] did nothing, kinda frustrating. other than those however, i can bring the aforementioned error in a matter of seconds. so i am basically confirming giorocks problem and adding my vote to it (not that it would matter :-))
Please do not mix two threads. The first topic is how to compile Lazarus and Scrabble3D, the other about an error jose reported on SF.net.
I usually download the latest Lazarus trunk from Svn and compile it with "make clean all". If you add or remove a package in the IDE, Lazarus is compiled again. But don't worry, if you have an IDE and if can open the project Scrabble3D all went well. To compile Scrabble3D one needs some additional packages. LazOpenGLContext handles the core OpenGL stuff. This package is not part of the standard IDE and needs to be integrated as mentioned in #2 (of course the dev libs should be installed as well on your system). If you are able to compile the project, as I understand from #6, and run into a problem with widgetset (TWinControl.WMSize loop detected, the widgetset does not like the LCL...), you should check these settings. Freepascal's slogan is "write once, compile everywhere" which means you can build an executable for several platforms and architectures. My idea was that you built the program for win32 which is not suitable for i386. With "i386" I refer more to Linux and in detail to Gtk2 as widgetset. You can configure the widgetset that should be used in Lazarus somewhere at project settings. Have a look for "LCLWidgetSet".
Once you are able to build and run the project you will face the problem to find a specific unit in my code. The comment about multithreading was intended as help. If your problem is about drag'n drop the issue becomes strange. Ask for my help if you find yourself lost in the code.