
Version of rcube using GLFW, OpenAL, FreeType fonts

Linux Build (Trisquel), Windows Build (64bit)
both using Chouteau's GNU Ada/g++

======================================================
todo:
======================================================
questions:

.) bfs26.adb: done, BUT, why does pri:=nt/2+dist2sol
	work, but nt+dist2sol does NOT?
	note: assert(pri<1000) was in force for test...
	i.e. nt+dist2sol < 1000 was legal, but still failed
======================================================

3dec22
.) Now using fbfs*.ad? directly from aslid/src. Only
	change is 1 line in fbfs26.adb::init where blank 
	is at (2,2,2) rather than (3,3,3). Works well.
.) shortened keydlay from 0.25 to 0.20 sec.
.) overall improvements in bfs*
	.) elliminated trailsel;
	.) trailmax 30_000 becomes 300
	.) better comments

26nov22
.) improved solvers...
	.) removed "minh" from splaypq0, due to problems;
		?is there a logic flaw?
	.) solPath now saves single-char move-dir only;
		so...cleaned up code.

24nov22
.) ideally, need flag to prevent calls to solver
	when nothing has changed
	but the "="-key was pressed.
	so set "configChanged" to false after solve...
	...done, now test.
.) added "configChanged" to cube, seven
	to avoid false calls to bfs...
	Need to regression test. 24nov22



24nov22
.) added sol-reset parms to shuffle, just as when
	moving, so no matter when
	shuffles occur, a new solver works Ok.
.) changes "s" to "="; and "=" to "u";
	i.e. now press "=" for true solver,
	and "u" to undo a shuffle.


23nov22
.) my macbook died. So much for OSX!

22nov22
.) found that LIFO queues are much faster!
.) added minh to track min pri enqueued: splaypq0.

21nov22
.) modified splaypq so each priQ is FIFO (queue)
	and NOT a LIFO (stack).

18nov22
.) tweaked some parms in the cube-solver...
	removed depth-limit...
	It seems to always work in < 10sec.

###########################################################
16nov22: Uploaded v4.5.2 to Git,Indi,Itchi,SF,Jolt+Osdn
###########################################################

15nov22
.) fixed solvers...?
	.) seven works fine;
	.) cube now frequently fails due to time/memory 
		constraints. But when it works, the soln is
		efficient. See bfs26.adb.

###########################################################
30sep22: Uploaded v4.5.1 to Git,Indi,Itchi,SF,Jolt+Osdn
###########################################################

23sep22
.) Simplified w64 build system to avoid installing mingw.

19sep22
.) restored 64-bit Windows build using msys64 & mingw64
	& GNU Ada.

13sep22:
.) elliminated usage of AdaCore compiler on linux.


16may22:
.) eliminated W32 build due to poor compiler support.

14may22:
.) updated dumpgl to match best version.

###########################################################
16apr22: Uploaded v4.4.7 to Git,Indi,Itchi,SF,Jolt+FSF+Osdn
###########################################################

14apr22:
.) converted gnu-libs to all shared to enhance portability
	of both build-scripts and executables.

18jan22:
.) Updated zoomwheel.adb to respect zmin, zmax.

###########################################################
18jan22: Uploaded v4.4.6 to Git,Indi,Itchi,SF,Jolt+FSF+Osdn
###########################################################

16jan22:
.) tried sl79 linux static libfreetype.a, libpng16.a
	and they work fine.

15jan22:
.) elliminated unused Frameworks directory.


8jan22:
.) updated to GLFW v3.3.6;
	updated linux script;
	updated libs (osx,gnu,wxx);
	added glfw.txt identifying as v3.3.6.

###########################################################
31dec21: Uploaded v4.4.5 to Git,Indi,Itchi,SF,Jolt+FSF+osdn
###########################################################

4dec21:
.) Delivered to F.S.F. latest version from S.F.

2dec21:
.) rejected by savannah for other reasons
	having to do with language in documentation.
	See gmail.mygames.

30nov21:
.) added headers to remaining few source files
	that did not have them.

30nov21:
.) due to a CCNC license on some WAV files,
	Savannah declined to certify rufascube. 
	The word "noncommercial" in a license means
	encumbranced, and NOT free. So I replaced all 
	with CC0 WAV files. Updated README.md.

23nov21:
.) added example build scripts (from avent) that
	.) avoid Xcode g++ compiler
	.) generate & use liboal.so


######################################################
15nov21: Uploaded v4.4.4 to Git,Indi,Itchi,SF,Jolt
######################################################

4nov21:
.) removed libgnarl, etc. Recompiled AC-SL79. Nice.
	And they run on all my linux systems.

.) ?is it possible to build with GNAT on linux? 
	Mint: yes; 	SL79: yes; 	Tris: yes;
	Note that portability on linux requires using
	static libgnarl/libgnat...this is no longer true
	since I began avoiding any static libs under
	./libs/gnu/. Only change requires using an
	rpath link option to enable finding reqd.libs.

2nov21:
.) removed mipmap statement in stex.adb that
	occasioanally generated an OpenGL error.

29oct21:
.) converted linux build to GNAT on SL79,
	per AV. Build successful.

22oct21:
.) updated 64-bit glext64.lib

21oct21:
.) refined libraries...
	.) moved libfreetype.a to libs/w64ming/libfreetype.a
	.) moved libfreetype.a to libs/w32ming/libfreetype.a
	.) added libs/w64ming/libglfw3dll.a
	.) added libs/w32ming/libglfw3dll.a
	.) removed libs/w32ming/libopenal32.a
		...because ONLY binw32/openal32.dll is needed.

######################################################
20oct21: Uploaded v4.4.3 to Git,Indi,Itchi,SF,Jolt
######################################################

20oct21:
.) improved version of adaOpenAL binding.
.) Now buildable under GNAT & all versions of AdaCore Ada.
.) Now provide a Win32 build, as well as Win64.


######################################################
14oct21: Uploaded v4.4.2 to Git,Indi,Itchi,SF,Jolt
######################################################

9oct21:
.) updated to latest glfw3.dll, from avent.
.) moved glext.lib from ./libs/w64ming/
	to ./binw64/ because it is required to
	be there at runtime. Modified script.

14may21:
.) added handling of standard window close event.



######################################################
17mar21: Uploaded v4.4.1 to Git,Indi,Itchi,SF,Jolt
######################################################

16mar21:
.) repaired broken code. Now possible to use
	5-key to shuffle. Need to redeliver.
.) rebuilt all.

4mar21:
.) tweaked cube.adb...
	.) bkgd colors now match seven...better;
	.) added factor > 1.0 so letter of depressed
		center cube is visible...better.

######################################################
2mar21: Uploaded to GitHub,Indi,Itchi,SrcForge,Jolt
######################################################

1mar21:
.) obscure troubles with OGLA-windows has forced me
	to elevate THIS app to mainstream because it
	works perfectly.
.) adjusted logic to show both solver #steps
	AND unshuffle #steps, so user can pick shortest.
.) enabled both a) shuffle-undo(=); b) solver(s)
	for both seven and cube.
.) updated bfs26.adb
.) created bfs7.adb...and it works nicely!

28feb21:
.) added live autosolver for "cube".


27feb21:
.) after innocent update, had trouble with zoomwheel code.
	Needed to set default dist = 5.0;
.) added output of layout when hitting <s>-key so I could
	test my prototype cube solver.

19nov20:
.) added important guard statements in snd4ada.adb

8nov20:
.) OpenAL conversion complete.
.) Remark: OpenAL sound was not fully necessary for this
	application since no sound loops are required.
	I added it because the code is pretty, and works
	for Windows, OSX & Linux.


27oct20:
.) cleaner ezSound interface recompiled on linux.

25oct20:
.) removed SFML-audio; using "noLoops" sound for
	win, mac, gnu.


02jul20:
.) updated all glfw libs to v3.3.2.


29may20:
.) code combined with seven.adb, because of large common
	base of code.  So this now contains & delivers both
	"cube" & "seven" executables.

27may20:
.) removed unneeded libz.a from lib\w32ming\
	and from wcmp.bat.

13apr20:
.) changed headers in all shaders to "330 core"
	rather than "410 core" so older OpenGL drivers
	would not cause abort.


4apr20:
.) removed sfml from linux build;
.) added M-key-toggle to mute moves;
.) equilibrated sounds;

16jan20:
.) added keys that allow any skin from within game:

	.) rufasCube is now merely 1 of 4 alternate skins
		in addition to the "primary" RGB coloring.

	.) t-key toggles between the primary RGB coloring
		and the current alternate skin.
		This toggle does NOT require any cube reset;

	.) c-key cycles thru alternate skins: 3 of the iQube,
		along with rufasCube.  But doing so resets to the
		initial configuration


14jan20:
.) removed time parm from clickRight.

12jan20:
.) now include libm/libz in linux version;
	This is likely to enhance portability.

10jan20:
.) updated to glfw v3.3.1


31dec19:
.) Updated build scripts...check w32ming/hide/
	to see if it can be deleted.  also to see if
	I actually need -lz in the script.


30dec19:
.)	One needs to use cursor clicks to avoid confusion after 
	many rotations, rather than keys like udlrfb.
	So I now downplay movement keys, while better explaining
	how to select without a mouse.
.) Renamed code move-names from moveUp, etc. to
	moveXm, moveXp, etc.
.) Commented-out the help screen describing keys:
	f=>+z, b=>-z, up=>+y, dn=>-y, rt=>+x, lf=>-x
	(even though it is still true in std Orientation...
		with +x=right, +y=up, +z=out of screen).
.) ! added Restart (r-key) !


29dec19:
.) finalized directories & scripts to work smoothly
	on w32ming & osx.
.) created wcmp0x.bat & wcmpx.bat to try creating
	libsnd4ada.a on windows.

28dec19:
.) corrected library problem (sfml,png);
	See if osx/win has similar problem,
	or out-of-date files.
.) Yes, fixed win32 too...
	BUT, did NOT run on win32.  Failed at
	snd4ada_hpp.ads:initSnds...
	could not find why?
	Note that seGlfw/binw32/seven.exe worked fine.
	FIXED!!! It was an EXTREMELY obscure problem.
	It seems some file in ~/binw32/ was corrupted;
	yet diff indicated they were identical to those
	in seGlfw/binw32/ AND they were identical in size?

21dec19:
.) cubeJoy.adb has gamepad,joystik test code added.
	My opinion:  forget handling gamepad FTTB.
	No reason for it with this game.

20dec19:
.) began inserting gamepad code...
	.) old code saved as cubeGood.adb !
	.) see cube.adb::1220

18dec19:
.) improved stex.adb coding according to lessons learned
	from kcube.
.) refined lettering color, size, placement per kcube.

17dec19:
.) replaced gtex with nicer/simpler stex from sevenGlfw;
	still color capable.
.) improved stex and reduced aliasing;

17dec19:
.) greatly improved glfw binding.
.) updated gtex to allow resizes.
.) noticed utex is not used...hid it.
.) NOTE that sevenGlfw.stex is different
	than the gtex used here, but both are 
	now very good.


15dec19:
.) after trial on MsW32, OSX:
	.) MsW32: nulibs from glfw failed.
		Needed to use older (v3.2.1) libs from KC,
		AND binw32 DLLs from KC.
	.) My new bindings (for v3.3.0) worked fine.
	.) OSX: new (v3.3.0) static libs are fine.
	.) osx: shows @ HiDpi by default!


13dec19:
.) modified previous thinGlfw version rcubeGlfw to fit
	new interface & my new binding.
.) seem to have it working...
.) definitely different than one used in Kcube...
	Felix Krause reports glfw v3.3.0, but this is BOGUS...
	I think he reports version of OGL.
.) ALSO, used cmake to compile new glfw under
	~/Downloads/glfw-3.3/build2/src/libglfw.so*
	and using them works on zeto but not NUC.
	I rebuilt glfw on the NUC and that is Ok everywhere.
.) prior to compiling, I had to "sudo apt-get install X"
	where X was:
	.) libxi-dev
	.) libxcursor-dev
	.) libxinerama-dev
	.) libxrandr-dev
	.) libx11-dev





27feb18: 
.) success using fancy fonts, gtex.ad? 
	to replace my utex.ad?
.) it looks reasonably simple & clean...
	Takes augmented glext-binding.ads,
	FreeTypeAda/, dmitri/ (all in adabindings),
	and libfreetype* under libs/*/.
.) ALSO, did it for SDL too!
	See ../seven/.


15feb18:
.) See "rundirstr" to understand how to force OSX to
	look in the proper place for the "/data/" directory.
.) Understand that without this, it might try to look
	under the ~/Resources/ directory, in which case one
	must insert the appropriate softlink to /data/.


########################################################
11nov17:  uploaded v 4.1.0 to SF, github, indie, itchi
########################################################


10nov17:
.) added (=)-key function same as (s)-key


4nov17:
.) !!! now compiles/runs on MSwin !!!
	...just need some dlls collocated w/exe.
	Also needed glext.lib (sourceforge glext-win32),
	and glfw, sfml libs for win32;
	and libz.a for win32.




3nov17:
.) now display countdown during autosolve <s>
.) now prevent <s> from working after manual move;

.) !!! now compiles/runs on MSwin !!!
	...just need some dlls collocated w/exe.
	Also needed glext.lib (sourceforge glext-win32),
	and glfw, sfml libs for win32;
	and libz.a for win32.
.) note:  there are graphical glitches on HP notebook:
	intel HD graphics 1366x768, 1GB


19oct17:
.) elliminated freetype.framework, libjpeg.a

4jul17:
.) modified *.sh to avoid large exe in ~/obj/

3jul17 (mini):
.) updated linux scripts to use AdaCore 2017 as well as
	updated SFML 2.4.2 libs.
.) revised lcmp16.sh script for linux;
.) put older linux libs into ~/libs/gnu16


2jul17 (mini):
.) added OGL version query to startup messages.
.) added OGL profile queries too.



########################################################
11apr17:  uploaded v 4.0.0 to SF, github, indie, itchi
########################################################


10apr17:
.) Improved getkey* by flushing event queue.
.) Now exit main loop immediately when userexit is triggered
	from the keyboard.
.) Confirmed same bad behavior of OpenGLAda on S.L. as on Mint.
.) Confirmed this thin binding behaves well.


17mar17:
.) GNU still requires glibc 2.14 (jun11) because of "memcpy"
	I might be able, with much work, to elliminate
	the use of "memcpy" by sfml.system...
	(audio does not use it)

9mar17:
.) added gcmpd.sh to test GNU g++-4.9, ada
	.) required fixlib.sh to set runpath
		of libsfml-audio.so
.) So now compiles using either GNU or AdaCore.

6mar17:
.) added package dumpgl per agate.  
	Used in both utex & cube.

28feb17:
.) removed deprecated glshademodel

26feb17:
.) improved zoomwheel.adb
.) cleaned up GL error code
.) cleaned up cube.adb code

24feb17:
.) added mouseWheel zoom using standard callback;
	zoomwheel.ad? is in ./adabindings/glfw/
.) moved snd4* into ./adabindings/sfmlAudio/
	to match the thick version of RufasCube.

17feb17:
.) added error handling to shader.adb;

14feb17:
.) great!  fully functional!
	.) functionally identical to mainstream SDL version;
	.) code is highly similar to SDL version;

13feb17:
.) 1st attempt at converting from SDL2 to GLFW3
.) compiled, but not run yet

