#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2015-03-12

Timestamps are in GMT/BST.

00:22:23raptorah, now i see why kaen had to use those function pointers - because the functions are different between the varios opengl implementations
00:45:06raptorwow, kaen had it all figured out...
00:45:12raptorwaht a mess
00:45:19raptoropengl function loading is bonkers
00:53:14raptor Quit ()
01:23:15fordcars Quit (Quit: Page closed)
04:42:51Flynnn Quit (Quit: This computer has gone to sleep)
04:46:48Flynnn has joined
05:17:46Flynnn Quit (Quit: This computer has gone to sleep)
07:50:06koda has joined
08:20:09Darrel Quit (Ping timeout: 246 seconds)
09:00:50Nothing_Much has joined
10:09:57koda Quit (Quit: koda)
10:24:23koda has joined
11:28:50raptor has joined
11:28:50ChanServ sets mode +o
11:34:08raptorgood day!
11:38:26Nothing_Muchgood morning
11:38:26raptor Quit (Read error: Connection reset by peer)
11:46:08raptor has joined
11:46:08ChanServ sets mode +o
11:52:42Darrel has joined
12:40:15kodabb has joined
12:43:24koda Quit (Ping timeout: 264 seconds)
12:43:24kodabb is now known as koda
13:52:29Nothing_Much Quit (Ping timeout: 252 seconds)
14:02:34Nothing_Much has joined
14:24:43Flynnn has joined
14:48:16kaen_mbp has joined
14:50:05koda Quit (Quit: koda)
15:02:47LordDVG has joined
15:16:00koda has joined
15:51:49Flynnn Quit (Quit: This computer has gone to sleep)
16:04:50Flynnn has joined
16:30:44Flynnn Quit (Quit: This computer has gone to sleep)
16:34:57watusimoto1hi
16:35:02watusimoto1 is now known as watusimoto
16:36:06raptorhi
16:37:26raptorI ran into some really crazy stuff with opengl last night
16:37:34raptordisecting kaen's code
16:38:29raptorapparently, in order to keep ABI compatibility, not just API compabitibility, you have to do what is called opengl function loading
16:39:41raptorso you can't just include a header and be done with it, unless it is to use opengl 1.1 or lower functions
16:40:23Nothing_MuchI used to have ABI compatibility issues, until I realized my GPU was over a decade old and decided to throw it out
16:40:38Flynnn has joined
16:40:55raptorsee this craziness: http://www.opengl.org/wiki/Getting_started#Getting_Functions
16:41:38raptorhmm.. maybe the ABI compatibility reason isn't strictly true
16:41:46raptoranyways, it's crazy
16:43:10Nothing_Muchraptor: what's the difference between API and ABI compatibility?
16:43:21raptorB == binary
16:43:28raptorP == program
16:43:35Nothing_Muchohh.. okay
16:43:55raptorABI has more to do with hardware, API is software
16:43:58raptorroughly
16:48:23Nothing_Muchohh
16:48:25Nothing_Muchcool
17:08:45kodait's easy to break abi in software
17:09:26watusimotowe'll be doing all this as a compiler switchm, right? i.e. compile with gles or ogl support?
17:09:50kodaactually abi has not much to do with hardware
17:10:09kodait's purely software, the thing is that many hw implement different libs in different way
17:10:16kodaeg moving a function or a member name
17:10:21kodathus breaking abi
17:15:04raptor^^ yes, that, thanks koda :)
17:15:47raptorwatusimoto: well, kaen had already figured out how to do the function loading with SDL (which helps a little)
17:16:54raptorso yes, basically we'd have an #ifdef that switches between GLES/GLES2 or desktop GL and we'd only turn on the GL function loading with GLES2
17:19:44watusimotook, I think that's not too bad
17:20:25raptorit isn't, but the code is ugly
17:20:32raptorand i'm glad someone else did the work :)
17:20:37watusimotoYES!!!
17:21:11raptoroh, i wanted to ask a question
17:21:16raptortryign to remember...
17:21:25raptoroh yeah, ok
17:22:32raptorshould I create an abstraction class of sorts where calls like glColor(Color, alpha) will have 2 child classes, one for GL, one for GLES2?
17:22:46raptorthen i'd include one or the other depending on the CMake flags
17:22:49raptorOR
17:23:02raptorone class with lots of #ifdef in it within the functions
17:23:06raptorOR something else?
17:23:25watusimotowell... it seems we'll be living with whatever solution for a long time
17:23:43raptoryep
17:23:55watusimotothe abstraction level seems the nicest
17:24:20watusimotobut the ifdef seems to require the least level of understanding on the reader's behalf
17:24:50raptormaybe a single compilation unit with the ifdef around the entire class? :)
17:24:52watusimotoand since we'll only be using one or the other, the abstraction layer is not strictly necessary
17:25:13watusimotowell... that third option might not be too bad
17:25:36watusimotothough, on some level, it is profoundly ugly
17:25:38raptorso one .h/.cpp, with a parent class and 2 child classes with #ifdef around them
17:25:49raptorworst of both worlds!
17:25:54raptoror best of..
17:26:17watusimotoI don't know what I like yet.. I'm just trying to get some pros and cons out there
17:26:40raptorI like: organization, but not having to maintain the organization
17:26:59watusimotoyes -- maintenace "cost" is a big driver
17:28:01watusimotoI think I persoanlly like the the big ifdef implementation... where one implementation or the other is swapped in a compile time
17:28:02watusimotohowever
17:28:24raptorme too :)
17:28:30watusimotoI strongly believe that if you are doing the work, you should do it the way that leaves you the most satisfaction
17:28:59watusimotothe advantage of the ifdef that attracts me is that it is very easy to understand
17:28:59raptorright now, satifaction == something not too hard to maintain
17:29:21watusimotoand ease of understanding translates into ease of maintenance
17:29:26raptoryep
17:29:33watusimotosince I hope we won't be looking at this too often
17:29:48watusimotoso you like the ifdef solution as well?
17:29:53raptoryep
17:30:02raptoraround the implementation classes, in a single file
17:30:07watusimotoyes
17:30:27watusimotoI don't think a class with dozens of ifdefs sprinkled about would be very good
17:30:32raptorhmmm... this may require we start using a namespace for your gameobjectrender/OpenglUtils class
17:30:37raptor*our
17:30:50watusimotothat would be ok
18:02:17Darrel Quit (Read error: Connection reset by peer)
18:02:48Darrel has joined
19:23:02LordDVG Quit (Remote host closed the connection)
20:25:54Flynnn Quit (Quit: This computer has gone to sleep)
20:35:52raptor Quit (Remote host closed the connection)
21:17:11Flynnn has joined
21:46:31Flynnn Quit (Quit: This computer has gone to sleep)
21:50:52watusimoto Quit (Quit: Leaving.)
22:28:14Flynnn has joined
22:57:39watusimoto has joined
22:57:39ChanServ sets mode +o
23:01:46Flynnn Quit (Quit: This computer has gone to sleep)
23:31:18Flynnn has joined
23:40:11koda Quit (Quit: koda)
23:54:32raptor has joined
23:54:32ChanServ sets mode +o
23:54:49raptorhouston, we have a problem...
23:54:57raptorwatusimoto: did you get the e-mail from Googley?
23:55:49Invisible has joined
23:56:13Invisible is now known as Guest17386

Index Search ←Prev date Next date→

These logs were automatically created by BFLogBot on irc.freenode.net.