Can i use SDL2 for this graphics contest?
I'm in. I wanted to participate in contest 2016, but I can't because I was busy. Now, I won't pass this chance.
I'm in!
Me wants. I'll not rest until you all wipe out SDL from your HD and use Allegro. >:D
Didn't know about that game. And has a lot of cool stuff. I'll download it and see what I can sole... learn! I've said learn. :-[Me wants. I'll not rest until you all wipe out SDL from your HD and use Allegro. >:D
There's a great game made with Allegro I used to create levels and graphics for it, Open Sonic http://opensnc.sourceforge.net/home/index.php (it's made in C).
Well the winner will tell the others wich library to use ::) I will not win (again) xD
Can i use SDL2 for this graphics contest?
Ah interesting, the contest is back. I missed that topic. I'll try to do something, if I find the time.
I'll make a hint in the German Lazarusforum. Is the end of summer (for me, end of summer is end of august ;)) the new date or 31 December 2017?
Well it's summer here :) That depends where it's summer. I think you say in the north hemisphere.Indeed. How to express it, hmmm, what about ending the context at the september equinox ?
you may consider to make some backgrounds and preconfigured styles, perhaps: futuristic, minimalist, classic, kid, funky.Be my guest to freely change it.
Can a FOSS project ongoing for some time already participate? :)
Title: Relogio
Category: Anything you can do with graphics!
Libraries:BGRABitmap
What will happen after this contest? Will the codes still openly available for others to study? I think it will be good if we have a wiki section that contains tutorials and ready-to-run source codes for graphics and games.
Can we also require a screenshot of all submissions? Not everyone here should be expected to compile and run them.
Wow, glad to see we can use BGRABitmap to simulate biology lifeform.
I think it would be better not to blur them. Also if you can, give them border and name it with a cool name like Staphylococcus.
https://en.wikipedia.org/wiki/Staphylococcus
Hurray!!! :D
For this contest, I have decided to use Allegro.pas. Some years ago when I was looking for a good graphics engine, I found Allegro.pas. Unfortunately, the limited tutorials caused me not to try it. Today, I made an attempt to try it. The process didn't run too smoothly, but at least it's working now, I opened some of the examples and they run correctly.
This contest to me is a learning process of using Allegro.pas. I will record my progress of writing a very simple game using Allegro and write a tutorial later, hopefully it can be useful for others.
Allegro.pas and BGRABitmap are both great graphics library. I choose Allegro because its currently lack of tutorials.
Here it is, now it's alive!I've stared at that image for 10 minutes.... contrary to the name, I didn't see anything move. :P
See here, too big to attach: https://i37.servimg.com/u/f37/19/53/21/62/moving10.jpg
Here it is, now it's alive!I've stared at that image for 10 minutes.... contrary to the name, I didn't see anything move. :P
See here, too big to attach: https://i37.servimg.com/u/f37/19/53/21/62/moving10.jpg
With my new found interest in OpenGL I've decided to enter the competition as well. :) I believe I have a really nice idea for the competition (its a secret for now ;) ) and it should be fun to implement too. Plus others will definitely be able to learn from it.
Just to confirm, the first post in this thread mentions the deadline as 1 September. Is that still correct?
Yes it's correct that's the deadline.Is that GMT? UTC? Or are some people more equal than others? %) :D
QuoteYes it's correct that's the deadline.Is that GMT? UTC? Or are some people more equal than others? %) :D
Just to make sure I have still 8 full months and not be stricken by not meeting the dead-line by a couple of hours...As usual...
Never thought using Allegro.pas is so easy. Here is the sneak peek of what I'm currently doing:
https://postimg.org/image/80qim95ml/
Old-school games always full of nostalgic. :DUp to 32-bit color. Last Allegro version doesn't support 256 color bitmaps natively, but there's a trick using shaders that allows 8bit color bitmaps. Right now I have no idea about shaders but I should learn to add palette effects to the engine (i.e. animated water and fire) and simulated CRT output (scanlines and such).
Does it support 32-bit color images? Or just 256 colors limited?
Old-school games always full of nostalgic. :DFully agree - I love them! With newer "graphics intensive" games, they just detract from the actual game-play I think. But maybe that's just me. ;)
Game category, pre-compiled for linux_x64 and win.
https://github.com/bylaardt/duplo6
Sure it wins, you have my vote. I played a variant of this game yesterday with real pieces.Thanks! :-[
This is unbeatable!
I love it.. play it every night... :D
My forgotten screenshot, sorry!
I think everyone programmed that game some time. :)Yup. me too... I gave up when some guy wrote the whole game (80*25 ANSI character graphics) in 256 bytes! in 1985/1986... for an assembly language contest. Using all kind of weird tricks like indexing asm opcodes (to character rom) and self modification..
I think everyone programmed that game some time. :)Yup. me too... I gave up when some guy wrote the whole game (80*25 ANSI character graphics) in 256 bytes! in 1985/1986... for an assembly language contest. Using all kind of weird tricks like indexing asm opcodes (to character rom) and self modification..
Does someone still have that 8086 code? I miss it...It was brilliant, utterly brilliant...
[edit]
The commodore 64 one was not far off in 6510 assembly at 384 bytes. I did mine for Commodore 64 in just under 1K... (looser!) but I tried. So basically now you know that, on average, I am 4 times as bad as a brilliant one...
Now than I see, I'm missing the colors in the numbers. Also when I launch the game I can't select the combobox. I'm running Linux 64, downloaded the whole repository.
My forgotten screenshot...Nice! I like games with homogeneous appearance and nice colors that don't punch you visually in the face.
Hey people!Yup!
I am interested on the contest! Can I participate?
It's bytes, not kilo bytes... It is a lost art.... >:( :( :( :(I think everyone programmed that game some time. :)Yup. me too... I gave up when some guy wrote the whole game (80*25 ANSI character graphics) in 256 bytes! in 1985/1986... for an assembly language contest. Using all kind of weird tricks like indexing asm opcodes (to character rom) and self modification..
Does someone still have that 8086 code? I miss it...It was brilliant, utterly brilliant...
[edit]
The commodore 64 one was not far off in 6510 assembly at 384 bytes. I did mine for Commodore 64 in just under 1K... (looser!) but I tried. So basically now you know that, on average, I am 4 times as bad as a brilliant one...
Yes there are also binary size contest that the .exe file should not be larger than "x" kb.
I don't have that kind of code, the older code I have is from 2007 ::)
I have an entry ready to send but don't know precisely what is required. I assume the .LPI, .LPR, .LFM and .PAS files and maybe the .ICO but suspect that .RES and .LPS might also be needed along with the Images used.
Nor do I know how the files should be sent and to whom !
... but I'm sure Lainz will enlighten me :)
Hi J-G, how are you?In good order thanks - had a fantastic concert last Saturday and still buzzing from it :)
You can upload it as a zip file in your website and put a link here, basically the people needs to download and test it.
If you're in doubt include everything, except the .bak files or backup folder (that depends on the settings, where these files are generated) and also don't include the lib folder.
Executables are welcome also, but not required.
My entry for the 'Animation' section is now available for you to download from www.crescentcomputing.co.uk/lainz.
There is one .ZIP file - BGRA Graphics.ZIP - which contains all the Laz generated files plus Screen-shots, .PNG Images, The CorelDRAW! file and a 32bit executable.
As there are no text clues such as TButtons cluttering the main image, I've added a comment at the top of the .PAS file to explain the thinking and controls.
I hope I've remembered everything - you'll no doubt let me know otherwise :)
My entry for the 'Animation' section is now available for you to download from www.crescentcomputing.co.uk/lainz.
There is one .ZIP file - BGRA Graphics.ZIP - which contains all the Laz generated files plus Screen-shots, .PNG Images, The CorelDRAW! file and a 32bit executable.
As there are no text clues such as TButtons cluttering the main image, I've added a comment at the top of the .PAS file to explain the thinking and controls.
I hope I've remembered everything - you'll no doubt let me know otherwise :)
Thanks for the correction :)Thought you might like that :) You know I hold the opinion that if you don't correct, you accept - and that helps no-one.
Amazing as always J-G!I'm not sure I would apply that epithet but thanks.
I've run the .exe under Ubuntu Linux with Wine, despite it shows a shadow around the clock (it's only on Ubuntu) it works very well.I got a little excited at first read - I missed the mention of Wine :) - cross-compiling to native Linux and Android are aspirations.
I got a little excited at first read - I missed the mention of Wine :) - cross-compiling to native Linux and Android are aspirations.Yes, I think is not possible because your application uses Windows dll's. You must find a cross-platform way doing the same (transparency).
Hi Handoko, I'm a new Linux user for a month or less, I can't rebuild lazarus when I try to install OpenGL package. Any ideas? I'm on Ubuntu.What is the problem you're experiencing? Is this "Error while linking"? If yes, get Lazarus 1.8.0RC2, debian packages are fixed there.
Hi Handoko, I'm a new Linux user for a month or less, I can't rebuild lazarus when I try to install OpenGL package. Any ideas? I'm on Ubuntu.What is the problem you're experiencing? Is this "Error while linking"? If yes, get Lazarus 1.8.0RC2, debian packages are fixed there.
Seems that also there's a library needed to be installed in the system according to this
http://forum.lazarus.freepascal.org/index.php/topic,35807.msg237482.html#msg237482
Hi
I believe all ready late for this graphic content , but I want to ask when will be the next one. I'm graphic designer and looking for contests like this. Can you please let me know?
The Tic-tac clock is a good start, with some improvements it can be great. It's now already configurable, you may consider to make some backgrounds and preconfigured styles, perhaps: futuristic, minimalist, classic, kid, funky.So here it goes!
Time is running out. It still needs much things to added to make it complete game.
I dug out my old delphi presentation tool prototype and decided to port it to fpc and build a full application out of it.
@pascalYes, i am on the way to it 8-)
Write once, compile anywhere. 8-)
Freepascal is more than a delphi open source version. Note this was a delphi conversion, not a fpc/lazarus original project.
remove "windows" from "uses", use the right units and be happy with a cross-compile code. ;)
Re-do with the WOCA concept. It's time to leave these "window" limits.
I haven't got a Windows license. :(
If I can't see your project running then I can't evaluate it. :'(
BTW, sounds like a good job to me.
@pascal
Write once, compile anywhere. 8-)
Freepascal is more than a delphi open source version. Note this was a delphi conversion, not a fpc/lazarus original project.
remove "windows" from "uses", use the right units and be happy with a cross-compile code. ;)
Re-do with the WOCA concept. It's time to leave these "window" limits.
I haven't got a Windows license. :(
If I can't see your project running then I can't evaluate it. :'(
BTW, sounds like a good job to me.
In the midnight of your sleep you have been attacked, your teammates died unarmed. You managed to grab your sword and saved your life. You vowed to kill 100 zombies or you will never leave.It looks gorgueous. I want to see it running. And the sources too. ;)
Cursed by your vow, the sky there will be forever dark. Without the bright of the sun, zombies will keep coming out.
Will you able to break the curse and continue your journey back to the palace?
Well, the game is almost finished. Animations, collision detections, etc are working well. But I need background music and some sound effects.Didn't you know about http://opengameart.org/ ?
Any suggestion where can I get some free audio that allow us to reuse?
I have added the timer, it now should run at the same speed on different machines. On my Linux computer, it seems to run at fixed 60 fps by default even I don't use timer and it won't able to go above it. If I set it 50 fps, I can see it runs slower, but if I set 70 or even 250, the results are the same as 60 fps.the only reason i can think of atm is vsync/screen-mode refresh rate . Do you happen to use vsync inside your code somewhere ?
al_flip_display
void al_flip_display(void)
Source Code
Copies or updates the front and back buffers so that what has been drawn previously on the currently selected display becomes visible on screen. Pointers to the special back buffer bitmap remain valid and retain their semantics as the back buffer, although the contents may have changed.
Several display options change how this function behaves:
- With ALLEGRO_SINGLE_BUFFER, no flipping is done. You still have to call this function to display graphics, depending on how the used graphics system works.
- The ALLEGRO_SWAP_METHOD option may have additional information about what kind of operation is used internally to flip the front and back buffers.
- If ALLEGRO_VSYNC is 1, this function will force waiting for vsync. If ALLEGRO_VSYNC is 2, this function will not wait for vsync. With many drivers the vsync behavior is controlled by the user and not the application, and ALLEGRO_VSYNC will not be set; in this case al_flip_display will wait for vsync depending on the settings set in the system's graphics preferences.
See also: al_set_new_display_flags, al_set_new_display_option
No, my code does not contain anything related with vsync.Ah, hidden options :)
al_set_new_display_option
void al_set_new_display_option(int option, int value, int importance)
snip
ALLEGRO_VSYNC
Set to 1 to tell the driver to wait for vsync in al_flip_display, or to 2 to force vsync off. The default of 0 means that Allegro does not try to modify the vsync behavior so it may be on or off. Note that even in the case of 1 or 2 it is possible to override the vsync behavior in the graphics driver so you should not rely on it.
No, my code does not contain anything related with vsync.I'm really curious about your sources. Your game loop looks as the loops used in the old times, when the target system had a fixed speed (i.e: game consoles, z80 based computers, ect.). Nowadays a single target (i.e. PC) may have different speed (not only CPU but also memory, disk and graphics hardware, that affects the final speed). Of course, it is possible to control speed using different ways, and I'm curious to know which one you've used as I'm sure it's very different to the one I'm using in my engine.
This is the code for drawing:
procedure ProcessDrawing; var C: Real; i: Integer; begin case AppState of Intro1: begin al_draw_bitmap(ImgIntroPage1, 0, 0, 0); with Player do al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0); end; Intro2: begin al_draw_bitmap(ImgIntroPage2, 0, 0, 0); with Player do al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0); end; Playing, Paused, Lose, Win: begin al_clear_to_color(al_map_rgb(0, 0, 10)); // Draw health bar al_draw_filled_rectangle(0, 0, PlayerHealth, 20, al_map_rgb(0, 200, 0)); C := (MaxPlayerHealth-PlayerHealth)/MaxPlayerHealth; al_draw_filled_rectangle(0, 0, PlayerHealth, 20, al_map_rgba_f(C, 0, 0, C)); // Show killed information al_draw_text(SystemFont, al_map_rgb(255, 255, 255), 20, 4,ALLEGRO_ALIGN_LEFT, 'Killed: '+IntToStr(EnemyKilled)); // Brighten the sky al_draw_bitmap(ImgBackground1, 0, 20, 0); C := EnemyKilled/100; al_draw_tinted_bitmap(ImgBackground2, al_map_rgba_f(C, C, C, C), 0, 20, 0); // Draw player and enemies with Player do begin al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0); if DebugMode then begin al_draw_rectangle(PosX+35, 230, PosX+60, 280, al_map_rgb(0, 255, 0), 1); if (CurrentActivity = AttackL) then al_draw_rectangle(PosX+15, 230, PosX+40, 280, al_map_rgb(255, 0, 0), 1); if (CurrentActivity = AttackR) then al_draw_rectangle(PosX+55, 230, PosX+80, 280, al_map_rgb(255, 0, 0), 1); end; end; for i := 0 to (Enemies.Count-1) do with TActor(Enemies[i]^) do begin al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0); if DebugMode then begin if (CurrentActivity = WalkL) or (CurrentActivity = AttackL) then al_draw_rectangle(PosX+30, 230, PosX+65, 280, al_map_rgb(0, 0, 255), 1); if (CurrentActivity = WalkR) or (CurrentActivity = AttackR) then al_draw_rectangle(PosX+33, 230, PosX+68, 280, al_map_rgb(0, 0, 255), 1); if (CurrentActivity = AttackL) then al_draw_rectangle(PosX+22, 230, PosX+47, 280, al_map_rgb(255, 0, 0), 1); if (CurrentActivity = AttackR) then al_draw_rectangle(PosX+50, 230, PosX+75, 280, al_map_rgb(255, 0, 0), 1); end; end; // Show cheat info if CheatFastRecover then al_draw_text(SystemFont, al_map_rgb(255, 0, 0), 20, 100,ALLEGRO_ALIGN_LEFT, 'FastRecover'); if CheatStoneSkin then al_draw_text(SystemFont, al_map_rgb(255, 0, 0), 20, 120,ALLEGRO_ALIGN_LEFT, 'StoneSkin'); // AppState related case AppState of Paused: al_draw_bitmap(ImgPaused, 140, 75, 0); Lose: al_draw_text(SystemFont, al_map_rgb(255, 255, 255), 250, 100, ALLEGRO_ALIGN_CENTER, 'YOU FAILED!'); Win: al_draw_bitmap(ImgWin, 140, 75, 0); end; end; end; al_flip_display; end;
And this is the main loop:
var Event: ALLEGRO_EVENT; begin ProcessInit; Start(Intro1); while (GameIsRunning) do begin al_wait_for_event(EventQueue, Event); ProcessUserInput; ProcessUpdate; ProcessDrawing; end; ProcessShutdown; end.
Can you please download and test the binaries (Win32 and Linux64)? And let me know if there is something not working correctly. Criticism and suggestions are welcome.When running the EXE on Win 10 x64, it asks for various DLLs then quits.
@minesadoradaFor Win 10 x64 you need to download:
I also got these missing dll errors
I downloaded from https://github.com/liballeg/allegro5/releases (https://github.com/liballeg/allegro5/releases)
Version 5.2 im on Windows XP 32bit sp3 and "allegro-mingw-gcc5.3.0-x86-5.2.0.zip" contained
all the dlls needed to run the Game.
if you are 64bit try "allegro-mingw-gcc5.3.0-x64-5.2.0.zip" ?
Hope this helps
QuoteALLEGRO_VSYNC
Set to 1 to tell the driver to wait for vsync in al_flip_display, or to 2 to force vsync off. The default of 0 means that Allegro does not try to modify the vsync behavior so it may be on or off. Note that even in the case of 1 or 2 it is possible to override the vsync behavior in the graphics driver so you should not rely on it.
Maybe you can toy with that option a little ?
And this is the main loop:I'm really curious about your sources. Your game loop looks as the loops used in the old times, when the target system had a fixed speed (i.e: game consoles, z80 based computers, ect.). Nowadays a single target (i.e. PC) may have different speed (not only CPU but also memory, disk and graphics hardware, that affects the final speed). Of course, it is possible to control speed using different ways, and I'm curious to know which one you've used as I'm sure it's very different to the one I'm using in my engine.
var Event: ALLEGRO_EVENT; begin ProcessInit; Start(Intro1); while (GameIsRunning) do begin al_wait_for_event(EventQueue, Event); ProcessUserInput; ProcessUpdate; ProcessDrawing; end; ProcessShutdown; end.
The game opens OK, but with a DOS console in the background. The game window is tiny (320x240?) on a 1920 screen, so the instruction text is practically unreadable.
I was expecting to move via left-arrow-right/arrow but no luck.
The only way to exit the game is by closing the DOS console. There is no File/close menu in the game window. ALT+F4 didn't work.
Here is my little project :
https://github.com/turric4n/SimpleZGL/tree/master/examples/StarfieldShooter
Here is the binary for Windows : http://www.turric4n.com/static/StarShooter_i386-win32.zip
Simply game developed for my little daughter.
Features :
Video - Full-Screen OpenGL or DirectX 9
1% CPU usage 5% GPU
Animations
Mouse Input
Collitions
Cross-Platform and MultiOS
Here is my little project :
https://github.com/turric4n/SimpleZGL/tree/master/examples/StarfieldShooter
Here is the binary for Windows : http://www.turric4n.com/static/StarShooter_i386-win32.zip
Simply game developed for my little daughter.
Features :
Video - Full-Screen OpenGL or DirectX 9
1% CPU usage 5% GPU
Animations
Mouse Input
Collitions
Cross-Platform and MultiOS
For Ubuntu I downloaded the PPA containing 5.2 and the game runs fine.
For Wine I downloaded the 5.2.0 dll and put into the exe folder, then run with Wine and works fine also. If you download a newer version like 5.2.x there are more dependencies that doesn't come with Windows, something related with C++. These DLL doesn't come with the Allegro download, must be downloaded in another place.
The game opens OK, but with a DOS console in the background. The game window is tiny (320x240?) on a 1920 screen, so the instruction text is practically unreadable.
Here is my little project :
https://github.com/turric4n/SimpleZGL/tree/master/examples/StarfieldShooter
Here is the binary for Windows : http://www.turric4n.com/static/StarShooter_i386-win32.zip
Simply game developed for my little daughter.
Features :
Video - Full-Screen OpenGL or DirectX 9
1% CPU usage 5% GPU
Animations
Mouse Input
Collitions
Cross-Platform and MultiOS
Well done! I've played it with Wine on Ubuntu and works fine. The only thing I see is that you maybe can center the ball when you do the click, simply add an offset so when you click it is displayed centered, not from the left corner. Another thing is that there's some flickering of the balls when there are more than one at the same time, but I can't say if it's a problem with Wine or the application itself.
Here is my little project :
https://github.com/turric4n/SimpleZGL/tree/master/examples/StarfieldShooter
Here is the binary for Windows : http://www.turric4n.com/static/StarShooter_i386-win32.zip
Simply game developed for my little daughter.
Features :
Video - Full-Screen OpenGL or DirectX 9
1% CPU usage 5% GPU
Animations
Mouse Input
Collitions
Cross-Platform and MultiOS
Doesn't run on Win10 Pro x64 (1703). Just Black Screen with flickering mouse pointer.
Compatibility mode doesen't help except flicking mouse pointer.
For Ubuntu I downloaded the PPA containing 5.2 and the game runs fine.
For Wine I downloaded the 5.2.0 dll and put into the exe folder, then run with Wine and works fine also. If you download a newer version like 5.2.x there are more dependencies that doesn't come with Windows, something related with C++. These DLL doesn't come with the Allegro download, must be downloaded in another place.
%) Thanks for your feedback. What GPU are you using?Build in Intel (i7 6700K -> HD 530)
%) Thanks for your feedback. What GPU are you using?Build in Intel (i7 6700K -> HD 530)
Just tested on an other machine. With HD 4600 it works. Nice :D
hi my friends, this is my videogame incomplete Years ago, called "Mario cronch" :D
I share the sources :)
https://www.mediafire.com/?8fot8akdaazpmwo (project)
I should do some testing yet but I think we have the Allegro.pas 5.2 Demonstration Game (if I have your authorization and sources to add it to the official repository, and apply the zlib/png LICENSE to it, of course). ;) Thanks Handoko.
I'm doing a Allegro 5.2 game example too :)
I'm not entirely sure if this is the why, but the game uses TThread in sudokuUnit.pas. Maybe this is needed in topmost uses list
{$ifdef unix} cthreads, cmem, // the c memory manager is on some systems much faster for multi-threading {$endif}
The graphics looks good. What graphics library did it use? Is it nxPascal?
Cool, somebody else doing my work. ;D That's fine. I can do other things then (i.e. documentation).I should do some testing yet but I think we have the Allegro.pas 5.2 Demonstration Game (if I have your authorization and sources to add it to the official repository, and apply the zlib/png LICENSE to it, of course). ;) Thanks Handoko.
I'm doing a Allegro 5.2 game example too :)
@MarcoI did mention i only made it work in Win10. I don't have a Linux, and it's never been kind to me when trying to run Linux on virtual machine with hardware accelerated graphics. It said it compiled too, so i don't have any possible suggestions to give. If anyone can tell what goes wrong it would be appreciated. Either it's a threading problem with sudoku algorithm or something might be going wrong with dglOpenGL on Linux. Only you guys can tell how to fix it, private message or anything.
I suspect you mean this?
http://forum.lazarus.freepascal.org/index.php?action=dlattach;topic=35313.0;attach=19516;image
Great game!! Sometimes I win! 8)
@lainz
In order to vote, we need a link, where all the projects can be downloaded at once. I'm almost certain you already have a link for us(us --> those who did not follow the thread in details, but are interested enough to vote).
Thank you!
I think I need to provide the executables also like I did for previous contests.Executable avaliable For Win (.exe) and Linux(.i386 ou .x86_64) with screenshots:
http://graphicslearning.com/furious-paladin-tutorials/ (http://graphicslearning.com/furious-paladin-tutorials/)link removed.
I'm curious about:
...
Mariocronk (I can't compile it, probably missing libs. Please, can you provide a linux version?)
Things missing:I presume that I don't need to do anything then.
- J-G sources: try to compile says missing png images
The link is in the first post, it's on Lazarus CCR at GitHub. And here:
https://github.com/lazarusccr/GraphicsContest
I think I need to provide the executables also like I did for previous contests.Yes - I would appreciate easy access to .EXE files - I don't have a Linux setup so cannot evaluate any entry that doesn't have a windows version.
Things missing:I presume that I don't need to do anything then.
- J-G sources: try to compile says missing png images
The link is in the first post, it's on Lazarus CCR at GitHub. And here:
https://github.com/lazarusccr/GraphicsContestQuote from: lainzI think I need to provide the executables also like I did for previous contests.Yes - I would appreciate easy access to .EXE files - I don't have a Linux setup so cannot evaluate any entry that doesn't have a windows version.
I have looked at the three entries by bylaardt - a small comment on the dominos game, my player was holding the double 6 but that tile was played by another and when I eventually played it, it turned into a double 1 !! - there were a few other mis-matched tile displays as well.
Lainz - can you change the title of my entry to 'Pocket Watch' ? - to reflect what it actually is please.
I have looked at the three entries by bylaardt - a small comment on the dominos game, my player was holding the double 6 but that tile was played by another and when I eventually played it, it turned into a double 1 !! - there were a few other mis-matched tile displays as well.
13 <Resources Count="25">Note the subdir.
14 <Resource_0 FileName="Images\01-CaseFront.png" Type="RCDATA" ResourceName="01-CASEFRONT"/>
15 <Resource_1 FileName="Images\02-MinHand.png" Type="RCDATA" ResourceName="02-MINHAND"/>
16 <Resource_2 FileName="Images\03-SecHand.png" Type="RCDATA" ResourceName="03-SECHAND"/>
17 <Resource_3 FileName="Images\04-HourHand.png" Type="RCDATA" ResourceName="04-HOURHAND"/>
18 <Resource_4 FileName="Images\05-Dial.png" Type="RCDATA" ResourceName="05-DIAL"/>
19 <Resource_5 FileName="Images\06-DayDial.png" Type="RCDATA" ResourceName="06-DAYDIAL"/>
20 <Resource_6 FileName="Images\07-DateWheel.png" Type="RCDATA" ResourceName="07-DATEWHEEL"/>
21 <Resource_7 FileName="Images\08-Winder.png" Type="RCDATA" ResourceName="08-WINDER"/>
22 <Resource_8 FileName="Images\09-Winder.png" Type="RCDATA" ResourceName="09-WINDER"/>
23 <Resource_9 FileName="Images\10-Winder.png" Type="RCDATA" ResourceName="10-WINDER"/>
24 <Resource_10 FileName="Images\11-BackRim.png" Type="RCDATA" ResourceName="11-BACKRIM"/>
25 <Resource_11 FileName="Images\12-Button.png" Type="RCDATA" ResourceName="12-BUTTON"/>
26 <Resource_12 FileName="Images\13-Back.png" Type="RCDATA" ResourceName="13-BACK"/>
27 <Resource_13 FileName="Images\14-CaseFront.png" Type="RCDATA" ResourceName="14-CASEFRONT"/>
28 <Resource_14 FileName="Images\15-TopPlates.png" Type="RCDATA" ResourceName="15-TOPPLATES"/>
29 <Resource_15 FileName="Images\18-BalWheel.png" Type="RCDATA" ResourceName="18-BALWHEEL"/>
30 <Resource_16 FileName="Images\19-BalWheel.png" Type="RCDATA" ResourceName="19-BALWHEEL"/>
31 <Resource_17 FileName="Images\20-BalPlate.png" Type="RCDATA" ResourceName="20-BALPLATE"/>
32 <Resource_18 FileName="Images\21-Wheel-3.png" Type="RCDATA" ResourceName="21-WHEEL-3"/>
33 <Resource_19 FileName="Images\22-Wheel-4.png" Type="RCDATA" ResourceName="22-WHEEL-4"/>
34 <Resource_20 FileName="Images\23-CentreWheel.png" Type="RCDATA" ResourceName="23-CENTREWHEEL"/>
35 <Resource_21 FileName="Images\24-Pallet.png" Type="RCDATA" ResourceName="24-PALLET"/>
36 <Resource_22 FileName="Images\25-Pallet.png" Type="RCDATA" ResourceName="25-PALLET"/>
37 <Resource_23 FileName="Images\26-EscapeWheel.png" Type="RCDATA" ResourceName="26-ESCAPEWHEEL"/>
38 <Resource_24 FileName="Images\27-DialBack.png" Type="RCDATA" ResourceName="27-DIALBACK"/>
39 </Resources>
thanks for testing it on windows.Yes
do you used the compiled version avaliable on https://github.com/bylaardt/duplo6
otherwise what version of Bgrabitmap do you had used?For your benefit - 9.2.1 and _Controls 431 the only version I downloaded in October 2016
My wife play every day, minimum 2 hours since i finalize it and never report to me something like that.
She wants me to create a server version to play online with others real players, but now she must wait until my next summer vacation (january)
Others proposals are:I don't know about Spanish rules - I barely remembered that you must match the 'end' number! A vague memory of '5s and 3s' springs to mind.
Create some variations of rules to play like Spanish rules;
Personal tiles
Personal avatars
PS: i love your bgraphics (pocket watch). it was my inspiration to make steampunkclock.Thanks for the compliment - it's good to be an inspiration - I haven't yet had time to properly evaluate the SteamPunk - though I do intend to pass that on to a friend who has a SteamPunk party every year where we all dress appropriately :o
@J-G/lainz:
are those errors originating from resourced images ?
Note the subdir.
edit: note the casing of the names as well btw (i haven't verified).
Ah.... You may well have found the issue Molly - thanks.No problem. common error when sharing sources with others. Lazarus is unforgivable though :)
I'm sure putting the files 01- to 27- in 'images' will sort it;If you make it "Images" to keep some other file-systems/OS happy, then everyone should be able to enjoy it ;)
though the resource entries could be re-created to reflect a 'flat-file' approach as well.You have many options. The one you choose is a simple/elegant one.
I don't think the casing is of any consequence - I have gone through it with a fine tooth comb - though I do acknowledge that it might have been an issue.Same reason as above. Some filesystem's/OS' are case sensitive. But as said, i did not verify the names myself so might have been wrong there.
2 hours a day !!!! - you treat her too well :DI believe is just a OCD crisis
I played for about 10 minutes - just to get a feel for the game. It must be at least 50 years since I played Dominoes, probably with my father and certainly before I got married (1972)
For your benefit - 9.2.1 and _Controls 431 the only version I downloaded in October 2016Try with 9.5
I don't know about Spanish rules - I barely remembered that you must match the 'end' number! A vague memory of '5s and 3s' springs to mind.Just Variations of score counting on a blocked game.
Ah.... You may well have found the issue Molly - thanks.No problem. common error when sharing sources with others. Lazarus is unforgiving though :)QuoteI'm sure putting the files 01- to 27- in 'images' will sort it;If you make it "Images" to keep some other file-systems/OS happy, then everyone should be able to enjoy it ;)
No one voted? Please vote, so we can decide who is the winner :)Do you have an compiled nominees archive? I'm afraid I won't have enough time and motivation to install all the third-party libraries at the moment :) Neither to look in each authors personal repository for a compiled version (maybe later)...
No one voted? Please vote, so we can decide who is the winner :)Do you have an compiled nominees archive? I'm afraid I won't have enough time and motivation to install all the third-party libraries at the moment :) Neither to look in each authors personal repository for a compiled version (maybe later)...
I'm afraid didn't have time to participate with a program this year due to a lot of work, I hope I'll be able to do it next year :)
Here are the binaries, for Windows (some include Linux also)Thanks a lot! ;)
https://github.com/lazarusccr/GraphicsContest/releases/tag/2017
Is there somewhere I can look through the entries one by one ?
I can't vote without seeing them !
Thanks
Hi, it was easier than I thought :D
Here are the binaries, for Windows (some include Linux also)
https://github.com/lazarusccr/GraphicsContest/releases/tag/2017
All the sources
https://github.com/lazarusccr/GraphicsContest
Notice that I've not applied the fixes posted here to fix linux compilation, because I don't have linux to test right now. So please follow any advice before compiling.
Is there somewhere I can look through the entries one by one ?
I can't vote without seeing them !
Thanks
Here:Hi, it was easier than I thought :D
Here are the binaries, for Windows (some include Linux also)
https://github.com/lazarusccr/GraphicsContest/releases/tag/2017
All the sources
https://github.com/lazarusccr/GraphicsContest
Notice that I've not applied the fixes posted here to fix linux compilation, because I don't have linux to test right now. So please follow any advice before compiling.
furiouspalladin_by_handoko
Really cool fully playable game which actually has it all. Thou the controls are horrible :) I always move in the wrong direction instead of attacking enemies. My max score was 23... One more thing, I couldn't close the game GUI window, only by closing the console window I could close the game (Win7x64)
bgragraphics_by_j-g_(pocketwatch)Thanks for your comment Eugene. You haven't mentioned it, and the only instructions are in the .lpi file, so I assume that you haven't 'opened' the case or viewed the 'movement'. I would be pleased to be dis-abused of this opinion :)
Looks cool and stylish.
However, I've ran into a bug, that it blinks ~1 times per second :) / Win7x64I'm also on Win 7x 64 and, as you see in my review, there is no ~1 sec. event.
Furious Palladin
I had two issues with this (one not yet resolved). Initially AVAST blocked it as potentially dangerous but I later had a message from them saying that it had been tested and added to their database as a ‘Good’. I can’t get it to run as it complains about ‘allegro_image-5.2.dll’ missing. I have copied this to the program directory but presume that I need to register it which I am cautious about.
glslideshow
I can load .JPG images which I see in the pre-view pane and can select the animation type but when running, all I see are white rectangles on a black ground, Yes, they animate as expected, but don’t display the image. Like Eugene I would prefer the option to bulk load and to have formats other than .JPG available.
In my test, I didn't need to install/register allegro_image-5.2.dll. I guess your antivirus blocked it. You can try to whitelist it on your antivirus settings.As a quick test I just disabled my AV and tried again but with the same result. Could it be that the .DLL needs to be in c:/.../sytem32 - - - or some other 'specific' location?
I found a bug in glslideshow, which I think is the problem that makes it fails to load jpeg images. Hopefully I can release the fix version tomorrow.That's at least a result :) but it seems that ONLY .JPG images are allowed. Well, at least I can't find a way to specify any other file-type.
duplo6_by_bylaardtTo learn you need:Looks like a very nice game, thou I can't play dominoe:) I didn't even understand the rules :)
It has been extremely popular in our country exactly with the same conditions ;Dduplo6_by_bylaardtTo learn you need:Looks like a very nice game, thou I can't play dominoe:) I didn't even understand the rules :)
1 Table - Preferably in a public square;
1 partner;
2 oponents
several beer bottles
In Argentina we play Domino this way:Yep, exactly the same rules I know.
@Lulu,http://www.openal.org/
Game doesn't run due to missing openal32.dll
http://www.openal.org/I know that, but you cannot load just the dll there you must choose between the win installer or the sdk-installer.
Hello all ! :)
I've finally finished (it's never finished...) my game Educ'Race. It have 9 stages in which car's player must take the good number that appear on the road, according to the selected multiplication table (from 2 to 9, randomly).
I have added some effects like rain, snow, fog, night when car is in a tunnel, etc...
I've also written Tile Map Designer, a small editor for make the game's map.
I have no idea if it compile on different platform than windows. It use TOpenGLControl.
Thanks you to have a try ! :)
Game windows executable
http://www.lulutech.fr/EducRace/EducRace.7z (http://www.lulutech.fr/EducRace/EducRace.7z)
Tile Map Designer windows executable
www.lulutech.fr/EducRace/TileMapDesigner.7z (http://www.lulutech.fr/EducRace/TileMapDesigner.7z)
Source
http://www.lulutech.fr/EducRace/EducRaceSrc.7z (http://www.lulutech.fr/EducRace/EducRaceSrc.7z)
@Circular: I allowed myself to use your 'Water_improved' that you have posted on a topic in this forum, in the splash screen at the beginning of the game. :-[ Thanks for this code !
Thanks for the feedback. I added OpenAL32.dll in the zip file. I hope it will work.http://www.openal.org/I know that, but you cannot load just the dll there you must choose between the win installer or the sdk-installer.
So why not include the missing dll like anyone else. This makes also sure the dll have the right version.
@Lulu,I had the same problem and I have now,
Game doesn't run due to missing openal32.dll
Could you please include it to your binary-archive
Thanks in advance
Because it has the complete installation and its the oficial distribution site.I do not know if the dll needs anything else or worst it needs a low level driver installed on the system. Why should I trust any one to share a clean non infected dll I prefer to go to the source which is their obligation to share clean non infected dlls with an installer that makes sure all requirements are met. Adding a dll in the release might or might not work it might work for you for example but for me because I'm using linux/xp/95 or what ever OS it requires a bit more to be installed. Why gamble when you can be 100% certain.http://www.openal.org/ (http://www.openal.org/)I know that, but you cannot load just the dll there you must choose between the win installer or the sdk-installer.
So why not include the missing dll like anyone else. This makes also sure the dll have the right version.
@Handoko, I can't found the source for your 'Furious Paladin' game. I'm interested how you differenciate the right control key from the left. One time I try to do it, I never succes...
@J-G, when you launch Educ'Race, please go to the second screen where you hear the music and could you say me what is the Frame per seconds please ? you could see this information at the top left windows gameThat is undoubtedly the 'issue' - - - even as a non-gamer I can appreciate that 1 to 7 FPS is hardly going to provide a good experience :)
Did the white image issue happen on certain images only or all images? Can you provide me the 'problem' image? Did you test it on Win7 64-bit? I will tried to get a Win7 64-bit machine to test.Yes it was all images. Yes I have found an image which ALWAYS causes an error at line 108 of your latest BGRAtoRGBA Procedure :
For your information, the program needs OpenGL to run properly. I guess the hardware should at least supports OpenGL 1.2. It used only the very basic OpenGL functions, I believe I didn't use any functions of version 1.5 nor above.
My graphics card is an NVIDIA GeForce 9500 GT with 1Gb GDDR2 and the spec. tells me that it supports Open GL 2.1.
I presume that I don't need to 'install' Open GL explicitly, I would anticipate that would be have been done when I installed the video drivers for the card - but since I have never needed to 'use' Open GL what would I know? ;D
However, if I load 5 images, sequence is
N°1, N°2, N°3, N°5 N°4 is skipped
at this point, if I reload another image on N°4, sequence become
N°1, N°2, N°3, N°4 , now N°5 is skipped
Yes I have found an image which ALWAYS causes an error at line 108 of your latest BGRAtoRGBA Procedure :
Temp := Data^.rgbBlue;
If it can help, here is a sudoku program I made that gives hints (or try to solve it) using human-like methods. This could be added to provide hints in the sudoko program already submitted.Thanks, but it was just a matter of finding time ;) The TSudoku class has a results-array that is generated also. Application could as a hint show any one of those numbers that isn't already filled in place. But there is also 1 flaw in generation algorithm, that it doesn't verify yet if there only is only 1 solution when numbers are removed from original. So i left fill ratio to just 0.5 which makes so easy sudoku's i can always solve them myself. In difficulty ratio in general sudoku magazines from 1 to 5 stars (5 hardest), i would class these about 2 or 3.
Please send me the image, so I can inspect and test.Sorry for the delay - I had a customer to visit.
Please send me the image, so I can inspect and test.Sorry for the delay - I had a customer to visit.
The mono file is 'Snowflake BW.png' and is now on my web-site.
There is something I cannot explain. Try this code on your 'snowflake BW.png':The ORIGINAL file was 40228 bytes - Curiouser and curiouser !! - unless you have accidentally transposed the two figures.
procedure TForm1.Button1Click(Sender: TObject); begin Image1.Picture.LoadFromFile('snowflake BW.png'); end;
I tested the code above using Lazarus 1.6.4 Gtk2 on Linux 64-bit. It quit immediately without showing any error. I tried to use GIMP to re-save the image (File > Overwrite snowflake BW.png) without modifying anything. The re-saved file can be open using the code above.
Original size of 'snowflake BW.png' : 33396 bytes
Re-saved size of 'snowflake BW.png' : 40228 bytes
My guess is maybe that mono png file format is not supported by TPicture or maybe that file is using non-standard format. Or maybe there is a bug on Linux Gt2 only? Can anyone test it on other OSes?I tried inserting that line of code at the start of your TForm1.BackgroundClick Procedure with the intention of 'stepping through' - - having declared Image1 : TImage locally. As soon as it tries to execute that line it throws a SIGSEGV error pointing to Line 770 in picture.inc.
So, because the original 'snowflake BW.png' cannot be opened using TImage.Picture.LoadFromFile, nothing I can do now.
Sorry my mistake.Original size of 'snowflake BW.png' : 33396 bytesThe ORIGINAL file was 40228 bytes - Curiouser and curiouser !! - unless you have accidentally transposed the two figures.
Re-saved size of 'snowflake BW.png' : 40228 bytes
One recommendation I might make for Handoko's Slideshow project that would immediately solve all image-format issues is to simply use BGRABitmap!
One recommendation I might make for Handoko's Slideshow project that would immediately solve all image-format issues is to simply use BGRABitmap! The TBGRABitmap class is capable of loading pretty much any image file type that you'd ever want to...
@J-G
I test your images, only 'Card Background.tif' is able to open using the LoadImage code:
✗ 3-4.tif
✗ BSL Logo.tif
✔ Card Background.tif
✗ snowflake BW NonInt.png
✗ snowflake BW.png
✗ vonEssen.tif
Tested on Lazarus 1.6.4 Gt2 Ubuntu Mate 16.10. If it failed, it show no error and sometimes it exit immediately.
I wish I could give two votes, that'd be
"sudoku" by user137
"furiouspaladin" by handoko
still can't decide which one I liked better... It's so hard to make "one-in-all-out" vote...
Thou I couldn't test
"starsfieldshooter" by turrican (can't run)
"educrace" by lulu
yet.
sudoku, relogio & duplo6 are the projects more voted (2 votes each). We need more votes to define this!I haven't voted yet.
I can't vote if the proper links are not added... 18 pages.... I do know I have a favorite, but am not reading everything back.. O:-)Unless i interpreted that wrongly: I used only a single link, this one (https://github.com/lazarusccr/GraphicsContest). Unfortunately i currently lack time to give everything a good spin.
only one Vote for this good projects .... its hard ;)Not only that, i would even consider it a bit unfair competition.
@lainz:
Thank you for your feedback and taking my suggestion into consideration.
The binaries post is now buried to page 13 it seems, maybe they could be included in the first post?
https://github.com/lazarusccr/GraphicsContest/releases/tag/2017
As I can only have one vote, my vote goes to:
duplo6_by_bylaardt
Next year, if possible, it would be a good idea to divide votes on categories.
Hello :)
my Educ Race game don't appear in binary and source zip :'(
It's time to vote!
Official contest 2017 repository:
https://github.com/lazarusccr/GraphicsContest
Download 2017 binaries:
https://github.com/lazarusccr/GraphicsContest/releases/tag/2017
And you can vote by category!
- games (ball, mariocronch, educrace, duplo6, sudoku, furiouspaladin)
- clocks (relogio, steampunkclock, pocket watch)
- effects (glslideshow, movingdots, movingdotsgl, starsfieldshooter)
Just choose one by category. Then comment here, your vote will be taken into consideration.
And you can vote by category!
- games (ball, mariocronch, educrace, duplo6, sudoku, furiouspaladin)
- clocks (relogio, steampunkclock, pocket watch)
- effects (glslideshow, movingdots, movingdotsgl, starsfieldshooter)
Just choose one by category. Then comment here, your vote will be taken into consideration.
duplo6_by_bylaardtabout message, i use diferent sounds when you play and when not. But by the contest link "toc.wav" are missing.
- I liked it very much, but sometimes the number 5 does not paint correctly;
- I missed a message that I have to pass because I do not have a matching piece;
Naturally, I must think that my clock entry is 'best' :D but I don't think that I should be allowed to cast that vote so 'SteamPunk' should get it.It's the best, and my inspiration to make steampunk.
Thanks J-G for your information, but I have no idea and no solution for this..@Lulu - I have now found a solution - well at least I now show a frame rate which is 'sensible' - anything between 70+ and 120 - didn't test too long - and I have been able to 'play' Educ'Race - finding oil-slicks and knocking motor-cyclists off the track :D If I were a gamer I might actually like it :)
Furious Paladin still complains that I don't have allegro-5.2.dll even though that is in the .exe folderOn which Windows? Win7 32-bit or Win7 64-bit? I'll try get myself a Win7 machine for testing.
Made one final set of changes to the files from Handoko's glSlideShow, if anyone reading this is one of the people who've been downloading them. Details and a new zip file are in my original post, like before.Since updating my video driver I can now see the images :) - result.
Win 7 Ultimate 64 bitFurious Paladin still complains that I don't have allegro-5.2.dll even though that is in the .exe folderOn which Windows? Win7 32-bit or Win7 64-bit? I'll try get myself a Win7 machine for testing.
I thought that that might also solve the issues I have with Sudoku but sadly not - that still just displays what I assume is a 'splash' screen after complaining that it can't find 'tile.png'.The source code will use either \ or / for data path depending on OS during compilation. So i don't know how you are trying it. Even if it was using | symbol, wouldn't the check be made during compilation too?
Thanks J-G for your information, but I have no idea and no solution for this..@Lulu - I have now found a solution - well at least I now show a frame rate which is 'sensible' - anything between 70+ and 120 - didn't test too long - and I have been able to 'play' Educ'Race - finding oil-slicks and knocking motor-cyclists off the track :D If I were a gamer I might actually like it :)
This is after updating my video driver to handle Open GL and finally being able to install 'Blender' - only took me a week %) (not that I can really use it yet!).
I thought that that might also solve the issues I have with Sudoku but sadly not - that still just displays what I assume is a 'splash' screen after complaining that it can't find 'tile.png'.
Furious Paladin still complains that I don't have allegro-5.2.dll even though that is in the .exe folder, and Star Field Shooter complains about xinput1_3.dll.
Try movingdotsgl it should work now with your drivers updated.Sorry No - still a full white screen and an Error message
xinput is DirectX, you need to install this:I have installed that - after some Micky$oft hassle - I don't want to be offered all kinds of MS rubbish >:D >:D - fortunately I'm savvey enough to find the boxes to un-tick !! but now it gives me an error loading ZenGL :( so I'll give that best.
https://www.microsoft.com/en-us/download/details.aspx?id=35
allegro should be of the same bitness of the compiled exe. if the exe is 32 bit the dll should be 32 bit. and must be of the same version. try running it from the command line to see if anything else is missing.No joy from the command line. I have to assume that the version (bitness) of the .dll supplied is the same as the .exe
there is a data folder, and there is a file called tile.png, just check that.There is now ... and it is populated with the 5 necessary files ... so I can run Sudoku - it's a pity I can't play it :D
I don't have a nVidia card to test. Or knowledge to see how much video card usage it does.
Too many problems revealed in this fun contest!
There are just so many 'Standards' available :)No, for the drums alone.. And I need two at least two for the voice and guitars.... Same with "other" standards....
Furious Paladin still complains that I don't have allegro-5.2.dll even though that is in the .exe folder,
Because I am still using BGRABitmap < 9.5 I can't re-compile the latest version but at least I can now appreciate what the program does AND I can confirm that the original program does handle 8 bit (B & W) .JPG images.
glslideshow_by_handoko
- Can it be a component for Lazarus? Maybe on OPM?
If i could vote again i would vote for glSlideshow 8-)
Deadline is september 21, right?
glslideshow and educrace still evolving. Give them some time to finish. Both are nice projects.
If i could vote again i would vote for glSlideshow 8-)
A big extra large annoying "i told you"Deadline is september 21, right?
glslideshow and educrace still evolving. Give them some time to finish. Both are nice projects.
But maybe we can do it before since a lot of users already voted1/5 of total votes in the last 48h and one project was updated.
But because Vertex Array is only supported on OpenGL 3.0 or above and also I am not good on Maxtrix, so I didn't adopt them.
Because I am still using BGRABitmap < 9.5 I can't re-compile the latest version but at least I can now appreciate what the program does AND I can confirm that the original program does handle 8 bit (B & W) .JPG images.
I have tested so many 'Versions' - and still have the source code of 4 of them in my '2017 Contest' folder, re-testing to find the issue has been problematic ! I have now found the version that gave rise to my statement 'using BGRABitmap < 9.5' -- it is Your source time-stamped at 13/8/2017 11:40 and it fails to compile with an error at line 228 of uniGraphics.pas - viz. (starting at line 210 therefore the fail line is 19 on '.width')Because I am still using BGRABitmap < 9.5 I can't re-compile the latest version but at least I can now appreciate what the program does AND I can confirm that the original program does handle 8 bit (B & W) .JPG images.Not sure what exactly you're referring to here... as far as I know Handoko never uploaded a release of the original project that included BGRABitmap as a requirement in the LPI, or used BGRABitmap at all. The zip files of my modification (that does use BGRABitmap) that I've been uploading have only included two PAS files and an LFM (meaning no particular version of BGRABitmap has ever been specified anywhere.) My initial post about it just says to "add BGRABitmap to your project requirements" to be able to compile the project with the changed files.
The error being 'identifier idents no member "Width"' - there is another error noted for "Height" as well - which I assumed to mean that BGRABitmap V9.5 differs from V9.2.1 by adding a 'width' and 'height' property.
I can confirm that the Width and Height properties were alive and well. Frankly I'm quite confident that they've probably always been there, since the very first version... what kind of image class would not have Width and Height? That would be insane! Haha.:-[ I should have thought that comment through :)
Also, you definitely don't have the most recent upload of my version... I can specifically tell as I've since made the UpdateButtonImage method a member of an "advanced record" called TSlideShowRenderer (along with all of the other image and rendering-related methods, essentially), and it starts at line 718. Would recommend re-downloading it! You can just go back to my initial post and grab the same zip file, as I was simply editing the post and swapping out the attachment as I went.Ah! Now I remember that I had a problem looking for which post your latest version was attached to and thinking "Why not attach it to THIS post?" then being distracted by some external 'life' event and not getting back to it.
Here's a direct link to my original post:Thanks - that make life so much easier - well so I thought :)
I first deleted all the old files, then extracted the new - only to find that the 'new' .zip was only 3 files; frmMain.ifm & .pas plus uniGraphics.pas.
That has been the case with all of the zip files I've uploaded. I've never included the entire project tree. It's always just been those three files.Ah... I've probably been confused because I've also been downloading Handoko's files as well - though keeping each in separate folders!
Regarding your problem though.. that is extremely strange! I honestly don't think it has anything to do with BGRABitmap at all. Is it possible that the compiler is referring to the Width and Height properties of TRect, and not TBGRABitmap? What version of FPC are you using?The error is flagged at line 736 :
Also, when you right-click on the TRect part of the variable declaration "Rect: TRect" (at line 722 of my most recent upload) and choose "find declaration of TRect", which file exactly are you brought to?Classesh.inc - line 28
Additionally, what happens if you change the variable name "Rect" to "ARect"? (Make sure you change it in all the places it occurs in the overall UpdateButtonImage procedure, obviously.)As you can see from the first 'Code' extract above, did that - 9 occasions - but no change to the result.
Have you tried to delete the lib folder.Yes - it went with the first clear-out.
glSlideshow version 0.95
--- edit ---
Almost forget to mention, the code needs LazOpenGLContext package to compile. To enable it:
Lazarus main menu > Package > Install/Uninstall Packages > select: LazOpenGLContext 0.0.1 > click: Install Selection > Save and rebuild IDE.
Can it be a difference on fpc version? for example you are using version 3 and those are in trunk? http://forum.lazarus.freepascal.org/index.php?topic=29450.0glSlideshow version 0.95
--- edit ---
Almost forget to mention, the code needs LazOpenGLContext package to compile. To enable it:
Lazarus main menu > Package > Install/Uninstall Packages > select: LazOpenGLContext 0.0.1 > click: Install Selection > Save and rebuild IDE.
I'm having a similar problem compiling this version as I have with Akira's
uniGraphics.pas(108,8) Error: identifier idents no member "Height"
A total of 23 errors between lines 108 and 143 of uniGraphics.pas ie. anywhere ther is a mention of Rect.Width or Rect.Height.
TRect again points to Types.TRect in classesh.inc as expected.
In case I had some residual code conflicts I again cleared the folder completely before downloading and extracting the .ZIP file again.
I also tested after adding the LazOpenGLContext package - just in case that solved both issues - irrespective of the lack of any logic in that action :)
Can it be a difference on fpc version? for example you are using version 3 and those are in trunk? http://forum.lazarus.freepascal.org/index.php?topic=29450.0The logic seems sound taazz. I've been investigating a bit deeper - by tracing back through the definitions from Rect : TRect -> TRect=Types.TRect -> TRect = Windows.TRect ---- eventually getting to :
glSlideshow Version 0.96Hooray! - successful compile using FPC 3.0/Laz 1.6 :D
I made a quick fix for "cannot compile issue" (TRect related). Please test it.
Everything is working correctly here on my Linux64. I need more information.That is good to know at least.
Thanks for reporting.You're welcome - it's what the Contest is about :)
Some of the issues above, I believe are the widgeset bugs. Okay, I will try to fix them one-by-one. Give me some days, lets see what I can do.There's no rush as far as I'm concerned.
Have you tried to use Project Inspector?Obviously not :) - With my own projects I haven't needed to ferret about in the sub menus a great deal, the source is simply there.
Lazarus main menu > Project > Project Inspector.
Have you tried to use Project Inspector?Obviously not :) - With my own projects I haven't needed to ferret about in the sub menus a great deal, the source is simply there.
Lazarus main menu > Project > Project Inspector.
At least I can now do a little more investigation but I still can't see the [Form] which would allow me to adjust the 'ProportionalScaling' tick box - even the Object Inspector is blank so I can't select the component and change the figures manually (rather than in the GUI).
Duh!! There is so much more to learn once you've got past adding a component :)... but I still can't see the [Form] which would allow me to adjust the 'ProportionalScaling' tick box - even the Object Inspector is blank so I can't select the component and change the figures manually (rather than in the GUI).Easy. Go to Project > Forms> Form1 > open that.
Trying to use the images you provided, the error is on this line:I said that I have a >:D'destructive streak' >:D - since I often want to make a large (A3+) physical print of some of my photographs I do have very large files - this past week I've scanned some new 6x7 slides at 6400 dpi creating files over 600Mb :o
GraphType:
// allocate some space
ADst.CreateData(False);
So basically there's not enough RAM or Video card RAM.
With other image I get this:
Win32Proc:
// We cannot trust windows with bmWidthBytes. Use SrcLineBytes which takes
// DWORD alignment into consideration
with AWinBmp do
Result := CopyImageData(bmWidth, bmHeight, SrcLineBytes, bmBitsPixel, bmBits, ARect, SrcLineOrder, ALineOrder, ALineEnd, AData, ADataSize);
Exit;
And with other images just the same as you, distorted.
I really like your code, lots of things for me to learn.
And I'm sorry with my misunderstanding that I think your code requires newer version of OpenGL to run. I searched the web about vertex array and I got the result of vertex array object, which I thought is the thing you're doing.
For the texture vertical problem, I remember Akira1364 ever said it is an issue of BGRABitmap on Linux:
http://forum.lazarus.freepascal.org/index.php/topic,35313.msg255460.html#msg255460
For the color issue, I used my own BGRAtoRGBA function. But I now use OpenGL to handle the BGRA texture:You can see the parameter GL_RGBA and GL_BGRA
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Image.Width, Image.Height, 0, GL_BGRA, GL_UNSIGNED_BYTE, Image.RawImage.Data);
Because Akira1364 didn't provide the project information files, I copy from mine.
But now, I get new error when compiling.
@Akira: I learned some good things with your code, thanks ! :)
About converting image size in power of 2: Do you think it's not necessary ?
Thank you Akira. I saved the file and will learn it properly when I am not busy.
But I'm curious why you used TSplitter for the resizing, why no directly resize it on FormResize?
Hi, well seems that the votes reached the limit of 27
Hi, well seems that the votes reached the limit of 27lol the maximum number of votes a forum poll can have is specifically 27? Why?
I think lainz was saying "It seems unlikely that we will get any more than the 27 votes already cast, so I'll close the poll" rather than "There is a limit of 27 votes on any poll"
I think lainz was saying "It seems unlikely that we will get any more than the 27 votes already cast, so I'll close the poll" rather than "There is a limit of 27 votes on any poll"That's it. I don't know if in Spanish it makes sense :D It's just my speech.
I think lainz was saying "It seems unlikely that we will get any more than the 27 votes already cast, so I'll close the poll" rather than "There is a limit of 27 votes on any poll"
I think lainz was saying "It seems unlikely that we will get any more than the 27 votes already cast, so I'll close the poll" rather than "There is a limit of 27 votes on any poll"
Well yeah, I was quite certain there was no way the limit was actually 27. Just figured I'd make a joke about it rather than directly question what he meant.... Native English speaker here as well, by the way.
I think lainz was saying "It seems unlikely that we will get any more than the 27 votes already cast, so I'll close the poll" rather than "There is a limit of 27 votes on any poll"That's it. I don't know if in Spanish it makes sense :D It's just my speech.
Google tells me that would be "Parece poco probable que obtengamos más de los 27 votos ya emitidos, así que cerraré la encuesta"
.. but I have no idea if that is anything like you would actually use in everyday speech :D
Has anyone not using Windows actually built and run it yet? Just asking as I think everything should work properly on other platforms, but I'm not 100% sure as I don't have access to any non-Windows machines with Lazarus right now that I could use to test it.Builds fine (requires enough experience building complete project with dependencies from just unit files, though, not really friendly), but upon running I got:
X Error: BadValue (integer parameter out of range for operation) 2
Extension: 155 (Uknown extension)
Minor opcode: 3 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
so the OpenGLContext canvas doesn't load. Tried running using primusrun (this is an optimus laptop), I got:primus: warning: glXSwapBuffers: no current context
but at least the canvas turns black.
Builds fine (requires enough experience building complete project with dependencies from just unit files, though, not really friendly), but upon running I got:Code: [Select]X Error: BadValue (integer parameter out of range for operation) 2
so the OpenGLContext canvas doesn't load. Tried running using primusrun (this is an optimus laptop), I got:
Extension: 155 (Uknown extension)
Minor opcode: 3 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x5400018
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0Code: [Select]primus: warning: glXSwapBuffers: no current context
but at least the canvas turns black.
What Linux distro and widgetset are you using, exactly? I know Handoko has previously been able to run my version on what appeared to be GTK2, although I'm not sure what variety of Linux he was using. Are you able to pinpoint at what line of the code it specifically fails via debugging?work fine on gtk2.
Winners:First cheat in Double6 game: early closure of this contest. :-[
1° "duplo6" by bylaardt
2° "relogio" by bylaardt and "sudoku" by user137
3° "furiouspaladin" by handoko
About the votes by forum message reply: I think each participant received his feedback in the comments.
work fine on gtk2.
qt = black/transparent canvas.
What Linux distro and widgetset are you using, exactly? I know Handoko has previously been able to run my version on what appeared to be the GTK2 widgetset, although I'm not sure what variety of Linux he was on.BINGO! Qt seems to have problem ATM (probably because Manjaro has bleeding edge Qt5), but GTK2 is unaffected. Now the problem is just during the transition images are upside down, but in correct position when done.
What Linux distro and widgetset are you using, exactly? I know Handoko has previously been able to run my version on what appeared to be the GTK2 widgetset, although I'm not sure what variety of Linux he was on.BINGO! Qt seems to have problem ATM (probably because Manjaro has bleeding edge Qt5), but GTK2 is unaffected. Now the problem is just during the transition images are upside down, but in correct position when done.
- Program crash when loading some rare image formats
- The user interface looked weird
- Matrix transitions did not work correctly
- Program crash when loading some rare image formats
Which image formats specifically did you have problems with?
How so?
- Matrix transitions did not work correctly
The program does not always crash and I cannot sure to reproduce it. What I know are they are *.tif files, put them into a folder, and the program often crash or exit immediately without error/warning when using TOpenPictureDialog browsing to that folder. My guess is, it fails to generate preview on the dialog. The strange is, if I test the image one-by-one, all of them are okay. It solved in my glSlideshow by avoiding to use TOpenPictureDialog and TIFF image loading is handled by FCL-Image unit.
Not serious problem just some cosmetic issues, please see the attachment. The text "Use Proportional", the screen update when dragging the slider, and don't know why there is darker/lighter color.
I saw you use .cfg as the file extension, but it won't automatically added to the file name. I have to type it manually or rename the file after saving.
Your version of glSlideshow cannot load *.icns images. Mine (using Image.Picture.LoadFromFile) works without problem.
We found many issues related with BGRABitmap and you solved them, like the the flipped OpenGL texture. So I think you should submit a bug report to BGRABitmap developer too.
I just downloaded and tested Akira's code. I have no problem compiling the code. I currently have BGRABitmap 9.5.0.0 installed.
I installed BGRABitmap using Online Package Manager. Very easy and useful, you should try it. I believe you will fall in 'love' with it too.Yes OPM is easy and useful - my emotions are not that easily stirred :D
I've now updated to 9.5 but still have the same 8 errors and 3 warnings.
I'm not sure if it was lainz or handoko that first suggested that it might be the V9.2.1 versus V 9.5 issue - I just took that suggestion on board. I could well be the fact that I'm using Laz 1.6.0 and FPC 3.0.0 but I would have thought that since they are still the latest 'stable' versions they ought to be supported.I've now updated to 9.5 but still have the same 8 errors and 3 warnings.Just like the last issue you had, this one definitely has zero to do with BGRABitmap or any other package... not sure why that's your first assumption?
TStringArray is nothing more than an alias for "array of string", defined in "syshelph.inc". So presumably your FPC installation has a version of that file that predates the introduction of the type.
That being said, literally all you should need to do to fix it is:
At line 243 of frmMain.pas, change it from this:
SeparatedLine: TStringArray;
to this:
SeparatedLine: array of String;
Done that, and yes, 6 of the 8 errors are gone along with the 3 warnings, leaving line 233 pos 108 --- '.ToString' with is not a component of '.Box.ItemIndex' apparently - and line 283 pos 42 --- '.Split([',']' not being a component of 'LoadList.Strings[ I ]'.
Well, the code you've posted there wouldn't compile as it includes SysUtils twice. What I meant was try it at the very beginning and very end separately.That was my original thought but your instruction "(As well as at the very beginning, perhaps.)" I interpreted literally but now appreciate that you meant "OR at the very beginning"
I managed to find out how to reproduce crash on Akira's version. It is 100% reproducible both running the code from IDE and from the binary directly. Tested using Lazarus 1.6.4 FPC 3.0.2 Gtk2 64-bit on Ubuntu Mate 16.10.
1. Download 3-4.tif provided by J-G, it is inside Set1
2. Run the program
3. Load that 3-4.tif
4. Repeat step #3, then the program will exit immediately
I managed to find out how to reproduce crash on Akira's version. It is 100% reproducible both running the code from IDE and from the binary directly. Tested using Lazarus 1.6.4 FPC 3.0.2 Gtk2 64-bit on Ubuntu Mate 16.10.
1. Download 3-4.tif provided by J-G, it is inside Set1
2. Run the program
3. Load that 3-4.tif
4. Repeat step #3, then the program will exit immediately
I think this problem only exists on Linux.The complete crash on second load probably - I don't get it on Windows - but I do get non-load and non-show errors with 8bit images and non-show on large 24bit images.
So it seems that the LZW decompression routine in the FPReadTiff unit (used internally by both TBGRABitmap and TPicture for loading TIFFS) only works on files with an original bit depth of 24 or lower.Well at least that seems to be a result - I did think about LZW compression but since I use that as a matter of course and it hasn't been a problem in the past, ignored my thought!
Also, @J-G: what are the hardware specs of the computer you're building/running the application on?M/b - ASUS M5A97LE
Are you able to compile the application with the Debug profile and attempt to backtrace where/why exactly it crashes for you?
The complete crash on second load probably - I don't get it on Windows - but I do get non-load and non-show errors with 8bit images and non-show on large 24bit images.
M/b - ASUS M5A97LE
CPU - AMD FX-6300 3.5GHz 6-core
RAM - 4Gb DDR3
Display - nVidia GeForce 9500 GT
Debug build mode did not help. I even turned all the checks on (io, range, overflow, stack, verify, assertion), it just exited immediately without any error/warning message.
I'm back with my test result.
Software: Lazarus 1.6.4 FPC 3.0.2 Linux64 cross compile to Win32
Source Codes: glSlideshow Handoko version and Akira (Debug mode) version
Hardware: Intel Core 2 Duo with integrated NVIDIA 7100 (drivers installed properly).
OS: WinXP Service Pack 3
If the image fails to load, nothing will happen (no crash). The program will still run correctly.
- When exiting the program a memory error message will show up
- Viewport not update, when starting the program
That is a rather uncommon setup... 6-core AMD Vishera CPU with a graphics card from 2008?I'm of the opinion that 'if it ain't broke, don't fix it' and when I last needed to upgrade my system, the Video card did all that I asked of it so didn't need replacing. All of the images I've provided have been created/modified in either Photoshop (V7) or CorelDRAW! X5 without issue and I am running the latest drivers (updated due to the OpenGL issues raised).
One thing I should clarify though is, are you building the application as a 32-bit or 64-bit executable? If you're building it 32-bit, I'd strongly recommend trying 64, as 64-bit GPU drivers running under 64-bit operating systems are not optimized for 32-bit applications and tend to have a higher number of issues/bugs while running them.That's an interesting point and I've just done a test compile as a 32bit version - it threw up 190 warnings and 1 hint, but did compile. Running it was 'painful' - it took about 3 times as long to load any image and didn't solve the 'thumbnail OK but no-show' nor the 'thumbnail non-load' problems - I wouldn't have expected it to really but in the interests of testing....
So, you were building it 64-bit to begin with, then? You realize I said "if you're building it 32-bit, try 64", not the other way around? Haha.I understood that Akira, I was simply being thorough in testing all possible scenarios.
So, you were building it 64-bit to begin with, then? You realize I said "if you're building it 32-bit, try 64", not the other way around? Haha.I understood that Akira, I was simply being thorough in testing all possible scenarios.
Also, one thing we haven't tried yet with regards to your issues is debugging OpenGL itself, which is easier than you might think!With your clear instruction - yes it is! :)
Well at least you've found a reason :) and many thanks for taking the trouble to do the research. Though it doesn't address the fact that the 3-4.tif image at 10 x 29 px won't load even the thumbnail ????
GTX 1050 Ti cards with 4Gb are in the range of £170 - £210 - I would of course not pay that much because I buy at 'trade' anyway - but the cost of a new card is not the only consideration.
First - for my real needs, what I have does the job very well, all the images I've put forward display in the two main programs that I use.
And of course the two cards with 2 DVI-D connectors can't be converted to VGA anyway.
I can tell that you’ve felt abandoned Akira :) I’ve been out of the loop for a few days on an urgent mechanical design project.
I’ve just compiled and run your latest incarnation and tried to load the 3-4.tif image which reports ‘Offset outside of stream at position 164' - all the other music time signature files also fail reporting the same error at position 166, 167 or 169. You may understand the meaning of E.message - I couldn’t possibly comment :)
Edit: Also, to specifically address the issue J-G was having loading his 1-bit "3-4.tif" image: I looked at the github history of FPReadTiff, and found that it was last updated in October 2015 (as in, after the release of FPC 3.0.0). I temporarily replaced the copy of FPReadTiff in my trunk source tree with the one from the next earlier update than that (which was in April 2015), and received the exact same error message he did upon trying to load the file.
So as I suspected, the problem originates in FPReadTiff but has been fixed in the time since FPC 3.0.0 was released. The only way anyone using FPC 3.0.0 or lower will be able to load 1-bit TIFF files in glSlideShow (or any Lazarus application really, as TPicture, like TBGRABitmap, also uses FPReadTiff to load them) is to either update to a minimum of FPC 3.0.2, or at least replace their copy of FPReadTiff with one from any source tree released later than October 2015.
In the future the troubleshooting for specific projects should be put in its own thread in my opinion. We have strayed far offtopic from the graphics contest.
Wasn't the whole purpose of the contest education?Yes - and I've certainly learned a great deal.
Also, J-Gs TIFF issue was an issue that anyone else could just as easily have in a large variety of other applications, so I thought it was worth pointing what the cause of and solution for it were.I hadn't previously thought to test the same images after converting to .PNG since I was hung up on the 1-bit issue but I've just converted one of the time signature files to a 1-bit .PNG and it both loads to thumbnail and displays in the slide show. Another lesson learned :)
Hi,
Thanks for the fix. I had a busy summer and I hadn't had time to look at this until now.
I learned a lot from this contest. Game/graphics codes written in Pascal are hard to find, learning different coding styles is good for improving my skills. I can learn not only Akira's OpenGL tricks but also how he rewrote my code using OOP approach. I know OOP but not as good as him. I especially interested with nxPascal and the graphics engine behind Educrace, I will spend some time to study them.
I'm not familiar with the EducRace code, but I can definitely attest to nxPascal being a fantastic library (with probably the most impressive example demos out of any similar Pascal-based OpenGL library.) However... everything about it would perform far better than it already does if the author (User137, I think) didn't use immediate mode (glBegin/glEnd) everywhere!There is easy to use support for vertex arrays and VBO's. I believe the pixel shader demo wouldn't even be possible with immediate mode rendering. You can also speed it up by using TCamera to manually calculate camera matrix. You can save up thousands of matrix multiplications per second by storing the matrix and reusing it. There is simple 2D rendering that uses VBO aswell if i remember right for rotation, scaling, patterned textures and so on. This was done by caching triangles in an array and them draw them all in 1 pass.
There is easy to use support for vertex arrays and VBO's. I believe the pixel shader demo wouldn't even be possible with immediate mode rendering. You can also speed it up by using TCamera to manually calculate camera matrix. You can save up thousands of matrix multiplications per second by storing the matrix and reusing it. There is simple 2D rendering that uses VBO aswell if i remember right for rotation, scaling, patterned textures and so on. This was done by caching triangles in an array and them draw them all in 1 pass.
Not sure which demo you're referring to exactly... What was the project name for it? There's definitely nothing that's "impossible without immediate mode".... and while yes, the library does have support for vertex arrays (although it seems somewhat incomplete in the case of VBOs), you definitely don't use it in most of your core rendering methods.I meant "impossible with immediate mode". And i'm not even sure, just something i vaguely remember...
I meant "impossible with immediate mode". And i'm not even sure, just something i vaguely remember...
Not sure if we can call them "core methods".
@Handoko: I've replied your e-mail.
I should revise my mails. Too busy. %)@Handoko: I've replied your e-mail.
Which one? The latest email I received from you was on 14th September 2017.