Switch to DuckDuckGo Search
   February 25, 2018  
< | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | >

Toggle Join/Part | bottom
[00:02:02] *** watered <watered!~dagger@gateway/tor-sasl/watered> has quit IRC (Ping timeout: 255 seconds)
[00:08:56] *** madsy <madsy!~madsy@fu/coder/madsy> has quit IRC (Read error: Connection reset by peer)
[00:09:00] *** _Quetzal2_ <_Quetzal2_!~Quetzal2@LFbn-LIL-1-242-190.w90-45.abo.wanadoo.fr> has quit IRC (Read error: Connection reset by peer)
[00:09:07] *** madsy <madsy!~madsy@cm-84.215.249.56.getinternet.no> has joined ##OpenGL
[00:09:07] *** madsy <madsy!~madsy@cm-84.215.249.56.getinternet.no> has quit IRC (Changing host)
[00:09:07] *** madsy <madsy!~madsy@fu/coder/madsy> has joined ##OpenGL
[00:10:10] <Dariusz_> no idea, went over code up and down. Its black magic. I have optimized the code so it can be run without fbx importer, if any1 wanna give it a go that would be great https://goo.gl/g646sP just "Ctrl+Click" few times left click drag move around camera. And the crash happens then, at myMesh::drawNode() 28 line. Tried debuging, but that dont really yeld any results :- (
[00:11:09] <derhass> Dariusz_: just make an apitrace and look at what GL calls (and states) you get?
[00:11:21] <Dariusz_> apitrace?
[00:11:53] <derhass> ah, I thought this was still about your VAO screwup
[00:12:09] <derhass> for your NULL pointer, a good old debugger is a better idea
[00:12:29] <Dariusz_> when I check the callback stack & autos I dont see any nulls/memory errors
[00:13:58] <Dariusz_> apitrace > https://apitrace.github.io/ this is what you mean ?
[00:14:26] <derhass> forget about apitrace for your null pointer issue
[00:14:33] <derhass> but it is still a valuable tool
[00:14:38] <Dariusz_> yeah
[00:14:40] <Dariusz_> looks curious
[00:16:54] <derhass> actually, after looking at your code, I think that apitrace can be a great help here
[00:17:01] <Dariusz_> :D
[00:17:01] <derhass> looks like you screwed up your VAO
[00:17:17] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[00:17:17] <derhass> the NULL pointer is right there, at that exact line
[00:17:25] <Dariusz_> the _glmanager?
[00:17:29] <derhass> no
[00:17:44] <derhass> the last parameter of glDrawElements
[00:17:48] <Dariusz_> 0?
[00:17:52] <derhass> yes
[00:17:54] <derhass> 0
[00:18:12] <derhass> NULL, 0, location 0x0000000000000000, call it as you like
[00:18:13] <Dariusz_> I though if I put 0 then GL auto finds it himself?
[00:18:19] <derhass> no
[00:18:23] <Dariusz_> crap
[00:18:53] <derhass> the question is: what happened to your VAO
[00:20:52] <derhass> there's dangerous destructor crap in your class
[00:21:27] <Dariusz_> which one
[00:22:23] <derhass> well
[00:22:28] <derhass> myMesh
[00:22:35] <derhass> probably others too
[00:22:48] <Dariusz_> the question is: what happened to your VAO - no idea, I'm googling now what should I put in the glDrawElements()-last element, but qt docs have 0 in their examples
[00:23:03] <derhass> the 0 is fine
[00:23:15] <derhass> as long as you have an IBO bound when calling this
[00:23:24] <derhass> which brings us back to your VAO
[00:23:38] <derhass> and to apitrace
[00:23:45] <Dariusz_> vao should be made in myMesh::buildNode9)
[00:28:19] <Dariusz_> its so weird that if I pre-load mesh from the code at application start, everything works. but once I star tadding it in via mouse clicks it crashes. I checked the pointers to glManager and sceneManager and they all seem to be valid. Vao seems to be valid when I debug it sigh
[00:28:39] <DarkUranium> but does the VAO have an element array buffer bound to it?
[00:28:45] <Dariusz_> hmm
[00:29:44] <DarkUranium> can we see the code where you attach/bind it to the VAO?
[00:30:41] <Dariusz_> https://pastebin.com/XyeYY0Ez or project https://goo.gl/g646sP
[00:32:39] <DarkUranium> as long as you don't unbind that index buffer, it should be correct.
[00:33:30] <Dariusz_> hmmm
[00:33:37] <Dariusz_> I just started binding index buffer
[00:33:56] <Dariusz_> holy crap
[00:33:58] <Dariusz_> didnt crash
[00:33:59] <Dariusz_> o.O
[00:34:55] <DarkUranium> you see, while the VAO is bound, any index buffer changes are going to apply to it
[00:35:09] <Dariusz_> so when I draw
[00:35:20] <Dariusz_> I need to bind vao/vertex/normal/indices buffers again?
[00:35:23] <DarkUranium> no
[00:35:34] <DarkUranium> what you need to do is not rebind the index buffer while the VAO is active
[00:35:44] <DarkUranium> you're probably changing it somewhere between VAO creation and your drawing
[00:36:02] <Dariusz_> I only have 2 functions
[00:36:38] <derhass> Dariusz_: use apitrace
[00:37:35] *** qeed <qeed!~qeed@pool-98-118-249-109.clppva.fios.verizon.net> has quit IRC (Ping timeout: 248 seconds)
[00:39:25] <Dariusz_> mmm im reading manual
[00:39:40] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[00:41:04] *** borkr <borkr!~borkr@static130-244.mimer.net> has quit IRC (Ping timeout: 260 seconds)
[00:41:20] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[00:42:03] *** qeed <qeed!~qeed@pool-98-118-249-109.clppva.fios.verizon.net> has joined ##OpenGL
[00:42:14] <Dariusz_> whh I think I'll drop qt and do it in gl then, not sure how to deal with apitrace. I'd have to dive in to it more :/
[00:42:53] <derhass> Dariusz_: apitrace has a qt gui
[00:43:17] <Dariusz_> yea I tried it, shows up and shuts down
[00:43:24] <derhass> lol
[00:43:44] <Dariusz_> u
[00:43:46] <Dariusz_> now it runs o.o
[00:44:53] <Dariusz_> uu ok
[00:44:54] <Dariusz_> it works
[00:45:00] <Dariusz_> so I take last frame is the crashed frame?
[00:46:24] <Dariusz_> wow that trace quite fancy o.o
[00:46:27] *** threenuc <threenuc!~threenuc@88.156.163.16> has quit IRC (Ping timeout: 245 seconds)
[00:46:53] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 240 seconds)
[00:47:55] *** doek <doek!~doek@188.62.56.2> has quit IRC (Ping timeout: 256 seconds)
[00:48:14] <Dariusz_> um could this be somehow related? -- (APISource : OtherType)
[00:48:14] <Dariusz_> Buffer detailed info: Buffer object 1 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memor
[00:48:14] <Dariusz_> y as the source for buffer object operations.
[00:48:27] <derhass> no
[00:48:34] <derhass> that's just a performance hint
[00:48:46] <derhass> Dariusz_: can you upload the trace file?
[00:49:40] <Dariusz_> odc https://goo.gl/7njmvc
[00:49:42] <Dariusz_> ofc*
[00:50:41] *** doek <doek!~doek@2.56.62.188.dynamic.wline.res.cust.swisscom.ch> has joined ##OpenGL
[00:51:06] <Dariusz_> looks like he crash on glBindVertexARray(2)
[00:53:48] <derhass> uuh
[00:54:00] <derhass> trying to replay your trace screwed up my driver completely
[00:54:13] <Dariusz_> :D
[00:54:22] <Dariusz_> I'm so soooory :D
[00:55:06] <derhass> let's see
[00:55:10] <derhass> Xid 69 is Graphics Engine class error
[00:55:28] <derhass> hw or driver error, a user apllication shouldn't be able to trogger this
[00:55:29] <derhass> wow.
[00:56:00] <Dariusz_> splended. Glad I still got the gift to break stuff :- )
[00:56:03] *** genr8__ <genr8__!~genr8_@unaffiliated/genbtc> has joined ##OpenGL
[00:56:15] *** genr8__ is now known as genr8_
[00:56:59] *** genr8___ <genr8___!~genr8_@unaffiliated/genbtc> has quit IRC (Ping timeout: 256 seconds)
[00:59:51] <Dariusz_> another trace https://goo.gl/VTc9d2 just in case
[01:02:44] <derhass> Dariusz_: this is the trace with re-binding the index buffer, isn't it?
[01:03:15] <Dariusz_> hmm not sure tbh... I think it was yes. I was trying now to rebind them all/partiall/etc
[01:04:35] <derhass> well
[01:05:06] <Dariusz_> making a trace now with rebound vao/vertex/normals/indices
[01:05:09] <derhass> the crash happens when you glDrawElements with vao 1 in frame 107
[01:05:20] <derhass> vao 1 is created in frame 105 without any index buffer at all
[01:05:27] <derhass> so it is no wonder that it will crash
[01:05:38] <Dariusz_> hmmm
[01:06:29] <derhass> btw, replaying the very last frame of your trace reliably triggers Xid 69 errors for me. maybe I should sent this to nvidia
[01:06:32] <Dariusz_> https://pastebin.com/XyeYY0Ez here I build my vaos, is this now how I should link them ?
[01:06:37] *** M6HZ <M6HZ!~M6HZ@mar75-4-82-230-46-11.fbx.proxad.net> has quit IRC (Ping timeout: 256 seconds)
[01:06:45] <Dariusz_> hahaha send it away :D
[01:06:51] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[01:06:56] *** M6HZ <M6HZ!~M6HZ@mar75-4-82-230-46-11.fbx.proxad.net> has joined ##OpenGL
[01:07:11] <Dariusz_> if it helps them tell them to send me new titan haha xD
[01:07:27] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[01:07:40] <derhass> Dariusz_: well, in frame 105, you use VAO1 just to glDrawArrays 2 triangles
[01:07:43] <derhass> no index buffer use there
[01:07:59] <Dariusz_> on the 1st trace or second trace?
[01:08:00] <derhass> so it seems like besides your mesh class, there are other VAO uses
[01:08:05] <derhass> Dariusz_: first
[01:08:06] <Dariusz_> hmm
[01:08:08] <Dariusz_> ah
[01:08:15] <Dariusz_> yes there is 1 vao, the learner one I used to start
[01:08:18] <Dariusz_> its in initializeGL()
[01:08:36] <derhass> but why is it re-initialized in frame 105 then?
[01:08:48] <Dariusz_> its the template I used to generate myMesh gen class
[01:08:56] <Dariusz_> no idea, I didnt call any initialize()
[01:09:01] <Dariusz_> maybe its not that
[01:09:03] <Dariusz_> humhhhhhhh
[01:09:22] *** jeannekamikaze <jeannekamikaze!~jeanne@c-73-223-201-25.hsd1.ca.comcast.net> has quit IRC (Ping timeout: 245 seconds)
[01:09:37] <Dariusz_> let me clean up all the code
[01:12:01] <derhass> well, you have VAOs without index buffers, and you try to do index draw calls on them
[01:14:22] <Dariusz_> does this trace https://goo.gl/ZYyMtA says the same?
[01:15:31] <derhass> wait a minute, you work with multiple contexts?
[01:15:36] <Dariusz_> no
[01:15:41] <derhass> yes, yo do
[01:15:41] <Dariusz_> or at least I think I dont...
[01:15:54] <Dariusz_> not again...
[01:16:16] <Dariusz_> I only have 1 myGLManager
[01:17:00] <Dariusz_> I mean when I do, _meshVao->create();
[01:17:00] <Dariusz_> _meshVao->bind();, I don't really know to where they get created/binded. I assumed it get created to _meshVao = new QOpenGLVertexArrayObject(_glManager);
[01:17:00] <Dariusz_> < qt widget parent?
[01:17:17] <derhass> maybe qt does this all behind your back
[01:17:28] <Dariusz_> hmmmmmmmm
[01:17:34] <derhass> but you have two GL contexts in there
[01:18:03] <derhass> 0x10000 and 0x10001
[01:18:17] <Dariusz_> that would explain a lot, I must use right context when I run the app with startup mesh load, and when I add stuff by hand I must be targeting wrong context
[01:18:54] <derhass> I don't know
[01:19:13] <derhass> what I *do* know is that qt's GL widgets fiddle around with the default framebuffer
[01:19:16] <Dariusz_> well this way if I call paint and pass vao, then the glcontext has no data in it for that vao so it crashes
[01:19:25] <derhass> maybe they use a separate context to draw that to the screen
[01:19:33] <Dariusz_> hmm
[01:19:40] <Dariusz_> leme go back to the roots and read up on it
[01:19:49] <derhass> that would be insane, of course, but this is qt after all, so I wouldn't rule that out
[01:21:32] <Dariusz_> ok so I had a QOpenGLContext*m_pContext; in myGLManager, but I was not doing anything with it
[01:24:47] *** CoolerX <CoolerX!~coolerext@49.15.135.213> has quit IRC (Ping timeout: 245 seconds)
[01:25:13] *** MrFlibble <MrFlibble!MrFlibble@176.249.2.170> has quit IRC (Ping timeout: 240 seconds)
[01:26:01] <derhass> Dariusz_: can't tell you what exactly is screwed up
[01:26:26] <Dariusz_> its ok, I think I got something to dive in to now, Im re-checking the qt context system
[01:26:29] <Dariusz_> I think I messed up that
[01:26:52] *** ShadowIce <ShadowIce!~pyoro@unaffiliated/shadowice-x841044> has quit IRC (Quit: Leaving)
[01:27:43] <derhass> Dariusz_: the second context is not necessarily an issue at all
[01:29:18] <Dariusz_> I think I'm gonna rewrite this from scratch
[01:29:38] <Dariusz_> now I'm getting is this ASSERT: "QOpenGLFunctions::isInitialized(d_ptr)" in file c:\users\qt\work\qt\qtbase\include\qtgui\../../src/gui/opengl/q
[01:29:38] <Dariusz_> openglfunctions.h, line 751:D
[01:31:11] <derhass> looks like yu call it before it is initialized
[01:35:57] *** jeannekamikaze <jeannekamikaze!~jeanne@c-73-223-201-25.hsd1.ca.comcast.net> has joined ##OpenGL
[01:36:20] <Dariusz_> hmmm
[01:36:21] *** sleepyspider <sleepyspider!~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net> has joined ##OpenGL
[01:36:48] <Dariusz_> I partially got it running
[01:36:51] <Dariusz_> yea its multiple context error
[01:37:20] <Dariusz_> I messed up Qt routine to build it up properly
[01:37:38] <Dariusz_> and it was fine while initializing, but afterwards I was in wrong context somehow
[01:37:50] <Dariusz_> I need to read up on qt context managment ant QOpenGLWidget()
[01:38:32] *** maxtothemax <maxtothemax!~maxtothem@2601:1c2:600:445b:fd05:8ed0:56e9:4c17> has quit IRC (Ping timeout: 245 seconds)
[01:38:56] *** Nightwing52 <Nightwing52!~Thunderbi@47-219-227-233.lfkncmta01.res.dyn.suddenlink.net> has joined ##OpenGL
[01:40:41] <Dariusz_> yep everything works
[01:40:50] <Dariusz_> I changed this _shaderProgram->bind();
[01:40:50] <Dariusz_> _meshVao->bind();
[01:40:52] <Dariusz_> in to
[01:40:56] <Dariusz_> _shaderProgram->bind();
[01:40:56] <Dariusz_> _meshVao->bind();
[01:40:56] <Dariusz_> _meshVertex->bind();
[01:40:56] <Dariusz_> _meshIndices->bind();
[01:40:56] <Dariusz_> _shaderProgram->enableAttributeArray("position");
[01:40:57] <Dariusz_> _shaderProgram->setAttributeBuffer("position", GL_FLOAT, 0, 3);
[01:40:59] <Dariusz_> _shaderProgram->enableAttributeArray("color");
[01:41:01] <Dariusz_> _shaderProgram->setAttributeBuffer("color", GL_FLOAT, 0, 3);
[01:41:17] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[01:41:28] <Dariusz_> that only "hot-fix" the issue, I have to go and fix the context managment in core, damn, thanks so much! I would have not made it this far without your help! :- ) Gotta send you some beer somehow :- )
[01:43:22] *** maxtothemax <maxtothemax!~maxtothem@2601:1c2:600:445b:6459:9af3:4fbf:bf63> has joined ##OpenGL
[01:44:37] *** Waynes <Waynes!~Waynes@23.94.61.168> has quit IRC (Quit: Leaving.)
[01:46:26] *** MrFlibble <MrFlibble!MrFlibble@2.124.191.62> has joined ##OpenGL
[01:46:59] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 252 seconds)
[01:47:10] <derhass> Dariusz_: it's not a hot-fix, it is a crappy way to cover bugsd
[01:47:33] <Dariusz_> yep, I need to learn how to fix it properly
[01:51:55] *** MrFlibble <MrFlibble!MrFlibble@2.124.191.62> has quit IRC (Disconnected by services)
[01:51:56] *** MrFlibble2 <MrFlibble2!MrFlibble@2.220.66.56> has joined ##OpenGL
[01:52:38] <Dariusz_> by the way, where did you read that I had 2 context?
[01:52:48] *** ville <ville!~ville@37-136-125-187.rev.dnainternet.fi> has quit IRC (Quit:)
[01:55:06] <derhass> in the trace
[01:55:24] <Dariusz_> is it called context or something else?
[01:55:34] <Dariusz_> I tried finding contexts but no results
[01:55:42] <derhass> wglMakeCurrent
[01:55:46] <Dariusz_> oh
[01:56:08] <Dariusz_> yap I see that
[02:00:22] *** Gama11 <Gama11!~quassel@p5DCDB3CC.dip0.t-ipconnect.de> has quit IRC (Remote host closed the connection)
[02:02:00] *** RobertPlummer <RobertPlummer!49928d92@gateway/web/freenode/ip.73.146.141.146> has joined ##OpenGL
[02:02:22] <RobertPlummer> chrisf: you around bud?
[02:02:41] <RobertPlummer> I'm having trouble upgrading from webgl1 to webgl2. Everything seems to be going fine, but when I use multi targets I run into a bit of an issue
[02:05:33] *** MrFlibble2 <MrFlibble2!MrFlibble@2.220.66.56> has quit IRC (Ping timeout: 256 seconds)
[02:07:33] <derhass> RobertPlummer: why don't you just state the issue?
[02:08:30] <RobertPlummer> good point
[02:08:37] *** kapitalist <kapitalist!~kapitalis@78-73-113-101-no162.tbcn.telia.com> has quit IRC (Read error: Connection reset by peer)
[02:08:43] <RobertPlummer> I'm getting the unit tests so you can run them via browser
[02:08:50] <RobertPlummer> the issue is this: the project is gpu.js
[02:08:59] <RobertPlummer> we map textures to floats
[02:09:24] <RobertPlummer> when using multi render targets, the returned values don't seem to match up.
[02:11:27] *** geo5 <geo5!~geo5@2601:601:1800:53a4::54a> has quit IRC (Ping timeout: 245 seconds)
[02:12:24] <derhass> that's still quite unspecific
[02:12:33] <derhass> "map textures to floats" means what?
[02:12:42] <derhass> and "don't seem to match up"?
[02:13:49] <RobertPlummer> https://rawgit.com/gpujs/gpu.js/261-webgl2/test/html/test-all.html
[02:15:20] <RobertPlummer> I removed the extensions here: https://github.com/gpujs/gpu.js/commit/178d47b0ef7eca97ff874ab3d491f113496f657f#diff-3da2bb870033f2946a5df2727670b5f3R164
[02:15:38] <RobertPlummer> Because after research, they should or may be built into webgl2
[02:16:32] <RobertPlummer> I upgraded from gl_FragColor here: https://github.com/gpujs/gpu.js/commit/178d47b0ef7eca97ff874ab3d491f113496f657f#diff-0d43c1608be3a83f343f75b90249bf80R1053
[02:17:25] <RobertPlummer> and map outputs here: https://github.com/gpujs/gpu.js/commit/178d47b0ef7eca97ff874ab3d491f113496f657f#diff-95369d579801b974b22c32b46bce976aR971
[02:17:39] <RobertPlummer> I'm not seeing where the functionality deviates from webgl1
[02:20:51] *** KAHR-Alpha <KAHR-Alpha!~Alpha@LFbn-REI-1-167-64.w86-225.abo.wanadoo.fr> has quit IRC (Ping timeout: 256 seconds)
[02:21:12] <derhass> well, your project is quite complex
[02:21:41] <RobertPlummer> yes it is
[02:22:12] *** geo5 <geo5!~geo5@2601:601:1800:53a4::54a> has joined ##OpenGL
[02:23:18] <RobertPlummer> There is a toFunction method, where I can output the whole and reproduce
[02:36:28] *** DMJC <DMJC!~DMJC@123-243-115-107.static.tpgi.com.au> has quit IRC (Remote host closed the connection)
[02:41:17] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[02:42:38] *** RobertPlummer <RobertPlummer!49928d92@gateway/web/freenode/ip.73.146.141.146> has quit IRC (Quit: Page closed)
[02:46:53] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 240 seconds)
[02:51:21] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[02:51:53] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has quit IRC (Ping timeout: 252 seconds)
[02:56:59] *** jeannekamikaze <jeannekamikaze!~jeanne@c-73-223-201-25.hsd1.ca.comcast.net> has quit IRC (Quit: Leaving)
[03:07:29] *** DarkUranium <DarkUranium!~DarkUrani@77.38.34.248> has quit IRC (Read error: Connection reset by peer)
[03:10:01] *** DMJC <DMJC!~DMJC@123-243-115-107.static.tpgi.com.au> has joined ##OpenGL
[03:12:06] *** wuji2016 <wuji2016!~Thunderbi@112.28.181.217> has joined ##OpenGL
[03:15:33] *** sleepyspider <sleepyspider!~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net> has quit IRC (Ping timeout: 240 seconds)
[03:20:53] *** Nightwing52 <Nightwing52!~Thunderbi@47-219-227-233.lfkncmta01.res.dyn.suddenlink.net> has quit IRC (Ping timeout: 240 seconds)
[03:21:01] *** sleepyspider <sleepyspider!~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net> has joined ##OpenGL
[03:21:07] *** nah__ <nah__!~inv@ip-109-90-191-56.hsi11.unitymediagroup.de> has quit IRC ()
[03:21:58] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[03:22:47] *** Tobbi <Tobbi!~Tobbi@supertux/tobbi> has quit IRC (Quit: My MacBook has gone to sleep. ZZZzzz…)
[03:23:45] *** chat_ <chat_!~chat@p54B2F157.dip0.t-ipconnect.de> has quit IRC (Ping timeout: 256 seconds)
[03:26:21] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Ping timeout: 252 seconds)
[03:26:40] *** chat <chat!~chat@p54B2F157.dip0.t-ipconnect.de> has joined ##OpenGL
[03:27:04] *** chat is now known as Guest41109
[03:27:12] *** sleepyspider_ <sleepyspider_!~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net> has joined ##OpenGL
[03:27:20] *** sleepyspider <sleepyspider!~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net> has quit IRC (Read error: Connection reset by peer)
[03:34:54] *** sleepyspider <sleepyspider!~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net> has joined ##OpenGL
[03:35:45] *** sleepyspider_ <sleepyspider_!~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net> has quit IRC (Ping timeout: 248 seconds)
[03:36:48] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[03:41:02] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Ping timeout: 245 seconds)
[03:41:19] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[03:45:45] *** sleepyspider_ <sleepyspider_!~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net> has joined ##OpenGL
[03:45:53] *** sleepyspider <sleepyspider!~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net> has quit IRC (Ping timeout: 240 seconds)
[03:48:07] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 245 seconds)
[04:05:40] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has quit IRC (Remote host closed the connection)
[04:36:36] *** qeed <qeed!~qeed@pool-98-118-249-109.clppva.fios.verizon.net> has quit IRC (Quit: Leaving)
[04:36:57] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[04:41:17] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[04:41:21] *** BearishMushroom <BearishMushroom!~BearishMu@82-209-154-59.cust.bredband2.com> has quit IRC (Read error: Connection reset by peer)
[04:42:55] *** BetaJester <BetaJester!~what@152.93.3.123.sta.dodo.net.au> has quit IRC (Remote host closed the connection)
[04:46:53] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 240 seconds)
[04:59:27] *** sur3_ is now known as Sur3
[05:01:02] *** BetaJester <BetaJester!~what@152.93.3.123.sta.dodo.net.au> has joined ##OpenGL
[05:17:07] *** cr1t1cal <cr1t1cal!~herald@unaffiliated/cr1t1cal> has joined ##OpenGL
[05:17:15] <cr1t1cal> so far in my OpenGL journey
[05:17:29] <cr1t1cal> I have figured out how to output a fixed set of verticies as a shape to the screen
[05:17:32] <cr1t1cal> however
[05:17:36] <cr1t1cal> when I am creating a moving game
[05:17:41] <cr1t1cal> how will this work?
[05:20:08] <cr1t1cal> where would the data for vertices to draw come from
[05:22:57] *** Fig1024 <Fig1024!~Fig@175.117.3.23> has quit IRC (Ping timeout: 240 seconds)
[05:31:22] *** slime <slime!~slime73@24.215.81.93> has quit IRC (Quit: This computer has gone to sleep)
[05:36:35] *** asecretcat <asecretcat!~allisonze@pool-72-77-42-97.pitbpa.fios.verizon.net> has quit IRC (Quit: let us connect our intestines and mutually digest)
[05:37:32] *** asecretcat <asecretcat!~allisonze@pool-72-77-42-97.pitbpa.fios.verizon.net> has joined ##OpenGL
[05:41:18] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[05:42:31] <ColaEuphoria> cr1t1cal, keep the vertices in their vertex buffer objects in the GPU, each frame, send new transformation matrices to the GPU as uniforms to multiply against the vertex buffers in the vertex shaders to move and spin them around
[05:43:19] <ColaEuphoria> the transformation matrices are computed on the CPU using data like player position and whatnot
[05:44:28] *** RajRajRaj <RajRajRaj!uid72176@gateway/web/irccloud.com/x-deujqbbgroqigztw> has joined ##OpenGL
[05:47:09] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 252 seconds)
[05:54:00] *** fatalhalt <fatalhalt!~fatalhalt@c-67-163-60-93.hsd1.il.comcast.net> has quit IRC (Remote host closed the connection)
[05:57:10] *** nogravityrush <nogravityrush!~textual@2600:1700:89c0:1780:10f0:1f1b:6de8:a790> has joined ##OpenGL
[05:57:57] <nogravityrush> what is DECL?
[05:58:16] *** fatalhalt <fatalhalt!~fatalhalt@c-67-163-60-93.hsd1.il.comcast.net> has joined ##OpenGL
[06:00:19] *** Foritus <Foritus!~buggery@cpc91390-watf11-2-0-cust41.15-2.cable.virginm.net> has quit IRC (Read error: Connection reset by peer)
[06:01:01] *** Foritus <Foritus!~buggery@cpc91390-watf11-2-0-cust41.15-2.cable.virginm.net> has joined ##OpenGL
[06:01:58] *** asecretcat <asecretcat!~allisonze@pool-72-77-42-97.pitbpa.fios.verizon.net> has quit IRC (Quit: let us connect our intestines and mutually digest)
[06:03:53] *** asecretcat <asecretcat!~allisonze@pool-72-77-42-97.pitbpa.fios.verizon.net> has joined ##OpenGL
[06:09:24] *** cr1t1cal <cr1t1cal!~herald@unaffiliated/cr1t1cal> has quit IRC (Quit: WeeChat 1.9.1)
[06:23:12] *** nogravityrush <nogravityrush!~textual@2600:1700:89c0:1780:10f0:1f1b:6de8:a790> has quit IRC (Quit: My Mac Pro has gone to sleep. ZZZzzz…)
[06:39:29] <Shockk> I have a quick question about OpenGL compute shaders;
[06:40:23] <Shockk> currently I'm just using a vertex shader and fragment shader for my game, and the fragment shader does some raymarching, doing a loop and some hacky optimizations to try and reduce the number of iterations of the loop
[06:41:21] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[06:41:39] <Shockk> would I be better to try and move the work I'm currently doing in that frag shader loop, into a compute shader with the workgroup size set to the same as the loop iterations I currently have?
[06:42:07] *** Nightwing52 <Nightwing52!~Thunderbi@47-219-227-233.lfkncmta01.res.dyn.suddenlink.net> has joined ##OpenGL
[06:42:50] <Shockk> really I'm wondering two things, 1. will it be at least as fast / faster than looping in the frag shader, 2. will it introduce any latency and can I just directly use the results of my wg calculations in my frag shader?
[06:46:51] *** xissburg <xissburg!~xissburg@unaffiliated/xissburg> has quit IRC (Quit: ZZZzzz…)
[06:47:39] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 252 seconds)
[06:54:47] *** Nightwing52 <Nightwing52!~Thunderbi@47-219-227-233.lfkncmta01.res.dyn.suddenlink.net> has quit IRC (Ping timeout: 245 seconds)
[06:55:12] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[06:57:03] <Stragus> Shockk: I don't understand the part about the workground size matching the count of iterations, don't you need to perform the iterations sequentially?
[06:58:17] <Shockk> Stragus: I do in the frag shader, but I'm wondering if it'd be faster to precalculate the results that I actually need at each stage in that frag shader loop
[06:58:49] *** tambre <tambre!~tambre@3c5b-0f05-f6db-2826-ab80-8a0a-07d0-2001.dyn.estpak.ee> has joined ##OpenGL
[06:59:05] <Shockk> i.e. by doing the calculations for every step of the loop, in a compute shader wg
[06:59:43] <Stragus> Perform exactly the same operations in a fragment shader, having to write the results to global memory then pull them back in the fragment shader?
[07:00:28] <Shockk> hmm, what I mean is, the frag shader is run on a single core, for each fragment, right?
[07:01:03] <Stragus> The definition of "core" is ambiguous there, but let's go with "yes"
[07:01:44] <Shockk> currently for a single fragment, I run a loop with a non-constant iteration count, and each iteration performs a very nontrivial calculation that determines whether or not the loop should continue
[07:02:32] <Stragus> As long as memory access and exectuion flow are reasonably coherent, it's not so bad
[07:03:08] <Shockk> so what I'm wondering is, if instead I did the nontrivial calculations beforehand in a compute shader, doing one of those calculations per invocation (hopefully meaning one per core)
[07:03:26] *** watered <watered!~dagger@gateway/tor-sasl/watered> has joined ##OpenGL
[07:03:28] <Shockk> I'm wondering if that would be faster than just the frag shader way currently
[07:05:03] <Stragus> Didn't you just say the count of iterations was variable? And I assume an iteration depends on the previous result? And that a bundle of fragments will follow a similar execution path?
[07:05:16] <Shockk> an iteration doesn't depend on a previous result nope
[07:05:41] <Shockk> just the frag shader depends on the previous result to know if it should stop or continue to the next one
[07:05:43] <Stragus> So the count of iterations is variable but known in advance based on something?
[07:05:46] *** ngm <ngm!~nishanth@183.82.187.154> has joined ##OpenGL
[07:06:05] <Shockk> I mean it's like
[07:07:36] <Stragus> Stick to the fragment shader. You wouldn't gain anything by computing all the iterations in parallel (can't stop early), then having to merge results through shared memory, writing final results to global memory, then pulling them back in some fragment shader later
[07:08:10] <Shockk> for i = 0 to num samples { x = eval(pos + DELTA * i); if(x > something) break; }
[07:08:15] <Shockk> kind of like that
[07:08:43] <Shockk> Stragus: couldn't I avoid the global memory stage and keep the results in gpu memory the whole time?
[07:09:23] <Stragus> By global memory, I mean the GPU's global memory
[07:09:24] *** Nilesh_ <Nilesh_!uid116340@gateway/web/irccloud.com/x-cphgylcrltjbumsb> has joined ##OpenGL
[07:09:28] <Shockk> ohhhh I see
[07:09:56] <Shockk> sorry brain is failing with the terminology
[07:10:54] <Stragus> Sorry, I often don't use the proper terminology, my CUDA experience beats my GL compute experience a thousand to one...
[07:11:07] <Shockk> right so shader storage buffer data needs to be retrieved from global memory into the shader core local memory when I want to access it from a frag shader?
[07:11:18] <Shockk> just confirming if I understand it properly
[07:11:55] <Stragus> Global memory bandwidth is precious, it's often the bottleneck, and you would use more of it for no reason
[07:12:04] <Shockk> right
[07:12:06] <Shockk> that makes sense
[07:12:49] <Shockk> out of interest
[07:13:32] <Shockk> if I was to move the entire loop into a compute shader, and process portions of the screen as workgroups, could it be more efficient if I cached some of those results, local to the current wg
[07:13:33] <Shockk> ?*
[07:14:23] <Stragus> The content of shared memory only lasts as long as the workground
[07:14:27] <Shockk> i.e. fragments near each other should in theory get very similar results so (in theory) I might be able to do far fewer iterations if I already know mostly what it'll be like
[07:15:18] <Shockk> right, I'd have to do multiple workgroups to cover all the fragments on the screen, but it might be good because fragments next to each other should have almost identical results from those calculations
[07:15:44] <Stragus> Yes, and that's the same coherent execution flow you get in the fragment shader
[07:17:00] <Shockk> hmm well yes, though in the frag shader I can only deal with a single frag at once, I can't make use of local memory (workgroup memory? shared memory? not sure the correct terminology here) to improve the looping of nearby frags
[07:17:28] <Stragus> What information would you like to communicate between fragments?
[07:18:25] <Shockk> hmm well, imagine I have a frag at (0,0) and a frag at (0,1)
[07:19:04] <Shockk> for (0,0) I'd do the regular loop that I currently do in my frag shader now, and calculate the final result that should be used in the frag shader for that fragment
[07:19:35] <Shockk> the loop would go through (0,0,0), (0,0,1), (0,0,2), (0,0,3), etc, doing a calculation at each point
[07:19:55] <Shockk> but during that, I could maybe store some of those results or something in local memory
[07:20:53] <Stragus> Okay. So you could compute some data for chunk of pixels, stored in shared memory, synchronize threads in workgroup, before they can all read the shared memory and use that data?
[07:20:54] <Shockk> then for the frag at (0,1), the loop could perform fewer iterations because at that point I should be able to give it a good idea of what the correct z value should be
[07:21:24] <Stragus> You probably want the thread for (0,1) to run concurrently, not wait for (0,0)
[07:21:26] <Shockk> hmm what do you mean?
[07:21:30] <Shockk> ohhhhh
[07:21:31] <Shockk> damn
[07:22:12] <Shockk> you're right of course
[07:22:32] <Shockk> hm hm well
[07:22:56] <Shockk> what about only requiring like, the center fragment of the group
[07:23:07] <Shockk> and having the other fragments barrier on only that fragment
[07:23:25] <Shockk> that way it'd only require one to finish and then the rest could run independently of each other
[07:24:09] <Shockk> I don't know if that's possible in compute shaders but I should still be able to optimize based on what the results from the center of the wg are
[07:24:15] <Stragus> Then the threads would do nothing while they wait?
[07:24:28] <Shockk> well yes but they only have to wait for a single invocation, rather than all of them
[07:25:29] <Stragus> A single invocation runs in the same time it takes to run the whole warp of 32 or 64 threads. Unless there are more memory loads that are scattered over more cache lines/tiles
[07:26:15] <Shockk> ergh that's true, I guess it doesn't make sense to wait for a slow invocation to finish before the potentially faster ones can go
[07:26:27] <Shockk> since they could just run as slower invocations at the exact same tiem
[07:26:35] <Stragus> Indeed
[07:26:39] <Shockk> I'm not used to thinking of things in this way
[07:27:16] <Shockk> oh hmm
[07:27:30] <Shockk> is it possible for me to parallelize the *first* invocation
[07:27:50] <Shockk> so I could have the calculations for the center fragment run across a whole workgroup
[07:28:09] <Stragus> Parallelize with what?
[07:28:20] <Shockk> I mean, so, for the center fragment
[07:29:10] <Stragus> You could still benefit from pulling a big chunk of data into shared memory just once, sync threads, then having all threads read from that shared memory. It's faster than all threads reading coherently from (cached) global/texture memory, but it's only suitable if your block of desired memory is fairly predictable
[07:29:11] <Shockk> instead of looping from 0 to 64 or whatever, and breaking out mid-loop if possible, could I run all 64 calculations in a workgroup
[07:29:41] <Shockk> and then after that finishes, do the remaining frags in the potentially faster way, using the cached results
[07:29:46] *** wuji2016 <wuji2016!~Thunderbi@112.28.181.217> has quit IRC (Remote host closed the connection)
[07:30:17] <Stragus> Possibly, yes
[07:30:26] *** wuji2016 <wuji2016!~Thunderbi@112.28.181.217> has joined ##OpenGL
[07:31:01] <Shockk> hmm I might try that
[07:31:15] <Shockk> it'll depend on lots of things if it's faster or slower I guess
[07:31:57] *** upgrdman <upgrdman!~upgrdman@blender/artist/upgrdman> has quit IRC (Ping timeout: 256 seconds)
[07:33:11] <Shockk> gpu architecture is interesting
[07:33:25] <Shockk> thanks for the discussion Stragus
[07:33:48] <Stragus> Sure, good luck!
[07:33:51] <Shockk> thanks
[07:33:52] <Shockk> :D
[07:34:11] <Stragus> And GPU architecture is how any proper modern computing should be done :), screw CPUs
[07:34:18] <Shockk> haha
[07:35:41] <Shockk> I've had the opportunity to work with some cpu architectures similar to that but I didn't really fully understand the mindset of them back then
[07:36:19] <Stragus> I have never heard of CPUs designed for massive parallelism
[07:36:37] <Shockk> ah
[07:36:57] <Stragus> CPUs are all about how to run a single thread as fast as possible, wasting an incredible amount of silicon on that
[07:37:43] <Shockk> maybe I'm misdescribing, I guess they were more specialized chips
[07:37:55] <Stragus> Ah, interesting
[07:41:15] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[07:46:53] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 240 seconds)
[07:47:22] *** SwiftMatt <SwiftMatt!~Objective@2601:282:4300:3e:71aa:2b95:c7d4:8478> has joined ##OpenGL
[07:48:32] *** SwiftMatt <SwiftMatt!~Objective@2601:282:4300:3e:71aa:2b95:c7d4:8478> has quit IRC (Client Quit)
[07:58:46] *** genr8__ <genr8__!~genr8_@unaffiliated/genbtc> has joined ##OpenGL
[08:01:21] *** genr8_ <genr8_!~genr8_@unaffiliated/genbtc> has quit IRC (Ping timeout: 252 seconds)
[08:04:17] *** davr0s <davr0s!~textual@host81-155-66-141.range81-155.btcentralplus.com> has joined ##OpenGL
[08:06:51] *** panda81 <panda81!32009561@gateway/web/cgi-irc/kiwiirc.com/ip.50.0.149.97> has quit IRC (Ping timeout: 252 seconds)
[08:07:42] *** krystcich <krystcich!~krystcich@178235146044.dynamic-zab-01.vectranet.pl> has joined ##OpenGL
[08:09:30] *** xerpi <xerpi!~xerpi@216.red-83-45-198.dynamicip.rima-tde.net> has joined ##OpenGL
[08:13:53] *** cfoch_ <cfoch_!uid270777@gateway/web/irccloud.com/x-eywvhubpegttwilq> has quit IRC (Quit: Connection closed for inactivity)
[08:13:57] *** SiN_Bizk1t <SiN_Bizk1t!~SiN_Bizki@user-79-136-182-100.tomtelnet.ru> has joined ##OpenGL
[08:37:47] *** ImQ009 <ImQ009!~ImQ009@unaffiliated/imq009> has joined ##OpenGL
[08:41:27] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[08:47:19] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 256 seconds)
[09:08:53] *** sleepyspider_ <sleepyspider_!~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net> has quit IRC (Ping timeout: 240 seconds)
[09:11:38] *** davr0s <davr0s!~textual@host81-155-66-141.range81-155.btcentralplus.com> has quit IRC (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
[09:18:39] *** Nilesh_ <Nilesh_!uid116340@gateway/web/irccloud.com/x-cphgylcrltjbumsb> has quit IRC (Quit: Connection closed for inactivity)
[09:23:38] *** watered <watered!~dagger@gateway/tor-sasl/watered> has quit IRC (Ping timeout: 255 seconds)
[09:33:49] *** watered <watered!~dagger@gateway/tor-sasl/watered> has joined ##OpenGL
[09:41:08] *** DonVlad <DonVlad!~Murii@79.113.205.114> has quit IRC (Quit: WeeChat 1.4)
[09:41:29] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[09:46:36] *** watered <watered!~dagger@gateway/tor-sasl/watered> has quit IRC (Ping timeout: 255 seconds)
[09:47:41] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 252 seconds)
[09:49:36] *** charlie5 <charlie5!~rod@124.171.55.191> has joined ##OpenGL
[09:57:40] *** watered <watered!~dagger@gateway/tor-sasl/watered> has joined ##OpenGL
[09:58:17] *** nogravityrush <nogravityrush!~textual@2600:1700:89c0:1780:10f0:1f1b:6de8:a790> has joined ##OpenGL
[10:02:05] *** wuji2016 <wuji2016!~Thunderbi@112.28.181.217> has quit IRC (Quit: wuji2016)
[10:06:58] *** borkr <borkr!~borkr@static130-244.mimer.net> has joined ##OpenGL
[10:08:08] *** Waynes <Waynes!~Waynes@23.94.61.168> has joined ##OpenGL
[10:11:40] *** ravior <ravior!~crapitea@38.132.111.173> has joined ##OpenGL
[10:15:00] *** ShadowIce <ShadowIce!~pyoro@unaffiliated/shadowice-x841044> has joined ##OpenGL
[10:19:42] *** iderik <iderik!~idk@h-0-97.A147.priv.bahnhof.se> has joined ##OpenGL
[10:30:27] *** ville <ville!~ville@87-95-30-76.bb.dnainternet.fi> has joined ##OpenGL
[10:32:34] *** Lunatrius <Lunatrius!~Lunatrius@77.38.21.155> has quit IRC (Quit: In theory, there is no difference between theory and practice. But, in practice, there is.)
[10:32:42] *** SwiftMatt <SwiftMatt!~Objective@2601:282:4300:3e:71aa:2b95:c7d4:8478> has joined ##OpenGL
[10:34:47] *** Peixinho <Peixinho!Elite19900@gateway/shell/elitebnc/x-runphrcoklayglnw> has quit IRC (*.net *.split)
[10:34:47] *** Lucretia <Lucretia!~laguest@pdpc/supporter/active/lucretia> has quit IRC (*.net *.split)
[10:34:47] *** edenist <edenist!~edenist@li1007-6.members.linode.com> has quit IRC (*.net *.split)
[10:34:47] *** phillip_w <phillip_w!~phil@162.243.147.19> has quit IRC (*.net *.split)
[10:34:47] *** Zaneo <Zaneo!~Zaneo@45.55.2.85> has quit IRC (*.net *.split)
[10:34:47] *** joel135 <joel135!sid136450@gateway/web/irccloud.com/x-kvdzyslpspzufsnd> has quit IRC (*.net *.split)
[10:34:47] *** drewbarbs <drewbarbs!~drewbarbs@2601:14a:700:eaa1:b4d1:3650:4556:2d71> has quit IRC (*.net *.split)
[10:34:47] *** bob_twinkles <bob_twinkles!~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com> has quit IRC (*.net *.split)
[10:34:48] *** lauren <lauren!sid187733@python/site-packages/lahwran> has quit IRC (*.net *.split)
[10:34:48] *** roxlu <roxlu!~roxlu@2a01:7c8:aac0:286:e7c0:85cb:bd94:1a22> has quit IRC (*.net *.split)
[10:34:48] *** juvenal <juvenal!Elite21271@gateway/shell/elitebnc/x-fjiddbpmehtlilpz> has quit IRC (*.net *.split)
[10:34:48] *** gluc <gluc!~quassel@2a02:1205:34c6:5610:26a7:6880:b061:6004> has quit IRC (*.net *.split)
[10:34:48] *** GGMethos <GGMethos!~methos@2607:fcd0:ccc0:b00::1:1> has quit IRC (*.net *.split)
[10:34:48] *** dexter0 <dexter0!~dexter0@2601:647:4500:700:ff:70ff:fe00:b0b> has quit IRC (*.net *.split)
[10:34:48] *** argoneus <argoneus!~argoneus@unaffiliated/argoneus> has quit IRC (*.net *.split)
[10:34:48] *** groton___ <groton___!groton@gateway/shell/blinkenshell.org/x-llotzpuxamickkde> has quit IRC (*.net *.split)
[10:34:48] *** dau <dau!matthias@ipv6.nebelfront.org> has quit IRC (*.net *.split)
[10:35:51] *** GGMethos <GGMethos!~methos@2607:fcd0:ccc0:b00::1:1> has joined ##OpenGL
[10:36:26] *** Peixinho <Peixinho!Elite19900@gateway/shell/elitebnc/x-runphrcoklayglnw> has joined ##OpenGL
[10:36:26] *** Lucretia <Lucretia!~laguest@pdpc/supporter/active/lucretia> has joined ##OpenGL
[10:36:26] *** phillip_w <phillip_w!~phil@162.243.147.19> has joined ##OpenGL
[10:36:26] *** Zaneo <Zaneo!~Zaneo@45.55.2.85> has joined ##OpenGL
[10:36:26] *** joel135 <joel135!sid136450@gateway/web/irccloud.com/x-kvdzyslpspzufsnd> has joined ##OpenGL
[10:36:26] *** drewbarbs <drewbarbs!~drewbarbs@2601:14a:700:eaa1:b4d1:3650:4556:2d71> has joined ##OpenGL
[10:36:26] *** bob_twinkles <bob_twinkles!~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com> has joined ##OpenGL
[10:36:26] *** lauren <lauren!sid187733@python/site-packages/lahwran> has joined ##OpenGL
[10:36:26] *** roxlu <roxlu!~roxlu@2a01:7c8:aac0:286:e7c0:85cb:bd94:1a22> has joined ##OpenGL
[10:36:26] *** gluc <gluc!~quassel@2a02:1205:34c6:5610:26a7:6880:b061:6004> has joined ##OpenGL
[10:36:26] *** dexter0 <dexter0!~dexter0@2601:647:4500:700:ff:70ff:fe00:b0b> has joined ##OpenGL
[10:36:26] *** argoneus <argoneus!~argoneus@unaffiliated/argoneus> has joined ##OpenGL
[10:36:26] *** groton___ <groton___!groton@gateway/shell/blinkenshell.org/x-llotzpuxamickkde> has joined ##OpenGL
[10:36:26] *** dau <dau!matthias@ipv6.nebelfront.org> has joined ##OpenGL
[10:36:49] *** edenist <edenist!edenist@2600:3c01::f03c:91ff:fea1:b086> has joined ##OpenGL
[10:36:57] *** Croepha <Croepha!~Croepha@45.55.252.156> has quit IRC (Ping timeout: 240 seconds)
[10:40:00] *** Croepha <Croepha!~Croepha@45.55.252.156> has joined ##OpenGL
[10:41:17] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[10:41:59] *** Lunatrius <Lunatrius!~Lunatrius@77.38.21.155> has joined ##OpenGL
[10:43:02] *** SwiftMatt <SwiftMatt!~Objective@2601:282:4300:3e:71aa:2b95:c7d4:8478> has quit IRC (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
[10:45:31] *** Asu <Asu!~sdelang@AMarseille-658-1-121-46.w86-219.abo.wanadoo.fr> has joined ##OpenGL
[10:47:07] *** BitPuffin <BitPuffin!~isak@c83-248-113-111.bredband.comhem.se> has joined ##OpenGL
[10:48:35] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 256 seconds)
[10:56:14] *** Quetzal2 <Quetzal2!~Quetzal2@unaffiliated/quetzal2> has joined ##OpenGL
[10:56:26] *** DonVlad <DonVlad!~Murii@79.113.205.114> has joined ##OpenGL
[11:00:33] *** lemonlake <lemonlake!~quassel@unaffiliated/lemonlake> has quit IRC (Ping timeout: 248 seconds)
[11:04:21] *** lemonlake <lemonlake!~quassel@unaffiliated/lemonlake> has joined ##OpenGL
[11:06:01] *** watered <watered!~dagger@gateway/tor-sasl/watered> has quit IRC (Remote host closed the connection)
[11:07:20] *** watered <watered!~dagger@gateway/tor-sasl/watered> has joined ##OpenGL
[11:11:00] *** Tobbi <Tobbi!~Tobbi@supertux/tobbi> has joined ##OpenGL
[11:12:06] *** watered <watered!~dagger@gateway/tor-sasl/watered> has quit IRC (Remote host closed the connection)
[11:16:16] *** watered <watered!~dagger@gateway/tor-sasl/watered> has joined ##OpenGL
[11:17:17] *** geo5 <geo5!~geo5@2601:601:1800:53a4::54a> has quit IRC (Ping timeout: 245 seconds)
[11:19:02] *** Kkiro <Kkiro!~yoo200181@unaffiliated/kkiro> has quit IRC (Quit: ZNC 1.6.1 - http://znc.in)
[11:27:03] *** Kingsquee <Kingsquee!~kingsquee@d108-180-237-219.bchsia.telus.net> has quit IRC (Quit: Just Monica.)
[11:32:11] *** threenuc <threenuc!~threenuc@88.156.163.16> has joined ##OpenGL
[11:38:57] *** immibis <immibis!~chatzilla@222-155-160-32.jetstream.xtra.co.nz> has quit IRC (Ping timeout: 248 seconds)
[11:41:15] *** slvn_ <slvn_!~slvn_@c2s31-1-78-245-90-111.fbx.proxad.net> has joined ##OpenGL
[11:41:15] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[11:41:52] *** genr8__ <genr8__!~genr8_@unaffiliated/genbtc> has quit IRC (Ping timeout: 245 seconds)
[11:47:24] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 256 seconds)
[11:52:20] *** davr0s <davr0s!~textual@host81-155-66-141.range81-155.btcentralplus.com> has joined ##OpenGL
[12:03:15] *** fundies <fundies!~fundies@unaffiliated/cheeseboy> has left ##OpenGL ("Leaving")
[12:03:59] *** ekn2 <ekn2!~ekn2@p1180010-ipbf1221akatuka.ibaraki.ocn.ne.jp> has joined ##OpenGL
[12:04:07] *** xerpi <xerpi!~xerpi@216.red-83-45-198.dynamicip.rima-tde.net> has quit IRC (Quit: Leaving)
[12:04:16] <ekn2> How is gl3w different from glad?
[12:04:25] <ekn2> (With a 3)
[12:04:42] <ekn2> Just found it yesterday
[12:06:46] <dav1d> more or less do the same, glad is mainly just more customizable
[12:07:11] <dav1d> basically all loader libraries are the same, you include them, call one function and you're good to go
[12:08:09] *** Kkiro <Kkiro!~yoo200181@220.116.85.154> has joined ##OpenGL
[12:08:11] *** Kkiro <Kkiro!~yoo200181@220.116.85.154> has quit IRC (Changing host)
[12:08:11] *** Kkiro <Kkiro!~yoo200181@unaffiliated/kkiro> has joined ##OpenGL
[12:08:21] <ekn2> On Android, I have to #include <GLES/gl.h>. I was wondering if I can create a header with glad that works on desktop and Android so that I don't have to use an #ifdef
[12:08:52] *** m92 <m92!~m92@178-223-39-199.dynamic.isp.telekom.rs> has joined ##OpenGL
[12:09:08] *** Asu <Asu!~sdelang@AMarseille-658-1-121-46.w86-219.abo.wanadoo.fr> has quit IRC (Read error: Connection reset by peer)
[12:09:11] <dav1d> just select select the GL version and the GLES version you need
[12:09:23] *** Asu <Asu!~sdelang@AMarseille-658-1-121-46.w86-219.abo.wanadoo.fr> has joined ##OpenGL
[12:09:32] <dav1d> you'll get symbols for both, then call the appropriate loader
[12:09:37] <ekn2> I was looking through glad.h. It creates a bunch of functions starting with glad and then #defines the OpenGL function names with the glad functions
[12:09:41] <ekn2> Why does it do that
[12:10:07] <nogravityrush> hi
[12:10:14] <dav1d> so you dont get screwed with colliding exports
[12:10:15] <ekn2> No loader is needed on Android
[12:10:17] <nogravityrush> i need help with benchmarking
[12:11:11] <dav1d> Yes there is a loader needed if you use glad on android
[12:11:24] <dav1d> or all function pointers will be null
[12:11:35] <nogravityrush> ok so once the scene is loaded with all the vector data structure i used and glm functions how do i know if its better to use an array data structure then vector when getting FPS for your engine?
[12:11:52] <ekn2> Hm. When I include GLES/gl.h, all functions are already defined
[12:12:00] <nogravityrush> neure
[12:12:07] <dav1d> defined but still null
[12:12:09] <nogravityrush> dav1d ekn2 any cideas
[12:12:13] <dav1d> no
[12:12:15] <ekn2> No, they are not null
[12:12:17] <ekn2> I can call thetm
[12:12:50] <ekn2> nogravityrush: A C++ vector?
[12:12:54] <dav1d> all of them? Maybe you dont need to, but not sure if undefined behaviour
[12:12:56] <nogravityrush> yes
[12:13:02] <nogravityrush> and lots of templating
[12:13:03] <ekn2> nogravityrush: A regular array is going to be faster. vector is implemented with an array
[12:13:05] <nogravityrush> generics
[12:13:28] <nogravityrush> for loading or for frame rate capture?
[12:13:44] <ekn2> Anything
[12:13:52] <nogravityrush> i mean there is a difference between loading a scene and frame rate capture right
[12:14:09] <ekn2> I don't know what you mean
[12:14:10] <nogravityrush> how does templates get compiled into assembly
[12:14:20] <nogravityrush> as well as vectors
[12:14:21] <nogravityrush> ok
[12:14:29] <ekn2> You would need to look at the C++ compiler
[12:14:39] <nogravityrush> ;)
[12:14:56] <nogravityrush> if it works fast on firefox it works faster natively
[12:15:08] <nogravityrush> ty
[12:15:32] <ekn2> dav1d: All of the functions are defined.
[12:15:39] <nogravityrush> cause js is like non restricted type
[12:15:44] <ekn2> ??
[12:15:51] <ekn2> Are you just talking nonsense?
[12:16:05] <ekn2> There is no context for anything you are saying
[12:16:50] *** DarkUranium <DarkUranium!~DarkUrani@77.38.34.248> has joined ##OpenGL
[12:18:01] <ekn2> dav1d: Is a colliding export when the same function is declared twice?
[12:18:10] <dav1d> yes
[12:18:33] <ekn2> Where else would an OpenGL function be declared?
[12:18:57] <dav1d> gl.h, glad, glew, SDL, glfw
[12:19:26] <dav1d> you dont know if your dependency uses gl.h or if another loader declares the same symbol
[12:19:40] <ekn2> I'm not using any of those
[12:19:46] <ekn2> Hm
[12:20:29] <ekn2> So a #define takes precedence over an existing function?
[12:20:40] <ekn2> If it has the same name
[12:20:44] <dav1d> just an example, you can't really know ahead of time, e.g. linking against gl would already be a problem (lot of libraries do that just to get access to gl 1.X)
[12:20:55] <ekn2> I see
[12:21:13] <ekn2> The GL library could have declarations of newer functions
[12:21:27] <dav1d> well one thing is linking the other compilation, at linking everything "gets thrown together", when compiling the compiler knows what you mean/want because you include specifically what you want
[12:21:50] *** borkr <borkr!~borkr@static130-244.mimer.net> has quit IRC (Remote host closed the connection)
[12:21:52] <dav1d> no code mangling/namespaces etc. in C
[12:22:12] <ekn2> But
[12:22:40] <ekn2> If you don't include gl.h, even if you link against the OpenGL library, you wont have those function declarations right?
[12:23:19] *** borkr <borkr!~borkr@static130-244.mimer.net> has joined ##OpenGL
[12:23:25] <dav1d> you wouldnt have the definitions to use in your C code, the symbols would still be there at linking (linker probably throws them out because they are unused, but without this optimization they are there)
[12:23:51] <ekn2> And if glad hypothetically declared the functions just as they are defined in the GL library, there would be a problem?
[12:24:06] <ekn2> Because then the linker wouldn't know whether you want the glad function or the opengl function
[12:24:11] <ekn2> Right?
[12:24:15] <dav1d> extern const char* glGetString(const char *); and link against libgl and you can use the function
[12:24:17] *** Gama11 <Gama11!~quassel@p50902C57.dip0.t-ipconnect.de> has joined ##OpenGL
[12:24:55] <dav1d> problem is the linker will override the symbols with glad's symbols (if you're unlucky) and applications expecting glGetString to work would just crash because glad was not loaded
[12:25:12] <dav1d> the function pointer would be null
[12:25:15] <DarkUranium> dav1d, doesn't glad start all symbols with glad_*?
[12:25:22] <ekn2> Yes
[12:25:25] <dav1d> DarkUranium: it does, just hypothetical
[12:25:27] <ekn2> I am asking why
[12:25:28] <DarkUranium> ah.
[12:25:49] <ekn2> I think I will make an example program where I define glGetString and then link against GL
[12:25:54] <ekn2> I'm not sure what happens
[12:26:06] <dav1d> DarkUranium: also regarding your gles issues, I still believe that's a specification issue
[12:26:15] <ekn2> Me?
[12:26:17] <dav1d> ekn2: probably a segfault
[12:26:36] *** borkr <borkr!~borkr@static130-244.mimer.net> has quit IRC (Remote host closed the connection)
[12:26:43] <dav1d> no? or is your name DarkUranium?
[12:26:47] <dav1d> :p
[12:27:00] <DarkUranium> dav1d, quite possibly. But it *is* an issue, at any rate.
[12:27:04] <ekn2> No, but he hasn't mentioned anything about GLES recently, so I thought you maybe made a mistake
[12:27:07] <DarkUranium> dav1d, are you sure you're not supposed to include GLES1 symbols in it?
[12:27:10] <ekn2> Since I did
[12:27:27] <dav1d> DarkUranium: if I should the specification doesnt tell me to do it
[12:27:49] *** borkr <borkr!~borkr@static130-244.mimer.net> has joined ##OpenGL
[12:27:57] <dav1d> ekn2: ah nah, it's a previous issue we discussed
[12:28:06] *** Kane <Kane!~Kane@home.yarg.fr> has joined ##OpenGL
[12:28:52] *** suppahsrv <suppahsrv!~mopmop@host66-161-dynamic.59-82-r.retail.telecomitalia.it> has quit IRC (Read error: Connection reset by peer)
[12:29:11] *** suppahsrv <suppahsrv!~mopmop@host66-161-dynamic.59-82-r.retail.telecomitalia.it> has joined ##OpenGL
[12:30:48] <dav1d> DarkUranium: http://paste.dav1d.de/reE?xml - no link to gles1 and the symbols do not get redefined
[12:31:23] <DarkUranium> well, I'm not sure where to report this problem. Can you report it upstream?
[12:31:51] <dav1d> DarkUranium: I can do it if you refresh my memory, otherwise open an issue here: https://github.com/KhronosGroup/OpenGL-Registry/
[12:32:02] <dav1d> they are really fast at responding and fixing issues
[12:32:10] <DarkUranium> dav1d, it's better if you do it, since it's your lib. Lemme find some of the issues (there's probably more)
[12:32:15] *** sumyunseal1 <sumyunseal1!~sumyunsea@cpe-75-82-22-197.socal.res.rr.com> has joined ##OpenGL
[12:32:23] <DarkUranium> dav1d, but, uhm, the symbols I've mentioned *are* in your xml ...
[12:32:44] <dav1d> DarkUranium: yes they are, but they are not <require>'d by the gles2 <feature>
[12:32:50] <dav1d> only by gles1
[12:32:51] <DarkUranium> aah
[12:33:02] <DarkUranium> but wait, what
[12:33:08] <DarkUranium> we're talking about reE?xml, right?
[12:33:16] <DarkUranium> for <feature api="gles2">?
[12:33:19] *** davr0s <davr0s!~textual@host81-155-66-141.range81-155.btcentralplus.com> has quit IRC (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
[12:33:23] <dav1d> DarkUranium: that was just an excerpt of: https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/gl.xml
[12:33:34] <dav1d> yeah
[12:33:44] <dav1d> CTRL+F for <feature api="gles
[12:33:57] <DarkUranium> I mean, your pasted code *has* the missing symbols.
[12:34:03] <DarkUranium> the reE?xml one.
[12:34:07] <dav1d> wait
[12:34:09] <dav1d> really?
[12:34:10] <DarkUranium> yup
[12:34:17] <dav1d> what symbol?
[12:34:26] *** Asu <Asu!~sdelang@AMarseille-658-1-121-46.w86-219.abo.wanadoo.fr> has quit IRC (Remote host closed the connection)
[12:34:27] <DarkUranium> GL_LUMINANCE, GL_{RED,GREEN,BLUE,ALPHA,DEPTH,STENCIL}_BITS
[12:34:34] <DarkUranium> there's probably more missing in the generated
[12:34:56] <DarkUranium> to be fair, I'm not convinced the registry had them the last time, but I might've misread the last time
[12:35:04] <DarkUranium> lemme try regenerating it, and comparing
[12:35:06] <dav1d> DarkUranium: it's there http://glad.dav1d.de/generated/tmprRXL0zglad/include/glad/glad.h
[12:35:43] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[12:35:46] <DarkUranium> could --profile "core" have broken it?
[12:35:46] *** Degot <Degot!~Degot@zeropitarr.ru> has joined ##OpenGL
[12:36:11] <dav1d> DarkUranium: maybe? did you generate gles and gl at the same time?
[12:36:15] <DarkUranium> nope
[12:36:19] <dav1d> lemmy get my notebook
[12:36:33] <DarkUranium> yeah, --profile "core" breaks it.
[12:36:44] <dav1d> well, that's a bug
[12:37:02] <DarkUranium> yarp
[12:37:05] <DarkUranium> FYI: http://vpaste.net/Uugiw
[12:37:05] <dav1d> or undefined behaviour
[12:37:07] <DarkUranium> feel free to diff it
[12:37:21] <DarkUranium> well, since GLES has no profiles, I'd imagine the correct behavior would be ignoring --profile here
[12:37:37] <DarkUranium> brb, lunch
[12:37:50] <dav1d> thanks, sorry, I must have missed that when initially looking into it
[12:38:32] <ekn2> Is this a valid test? https://pastebin.com/raw/D3dyP45C
[12:38:39] <ekn2> I don't get any weird problems
[12:40:22] <dav1d> what result do you get?
[12:40:32] <dav1d> (on stdout)
[12:40:51] * dav1d hates the glad code
[12:40:59] <ekn2> hello
[12:41:04] <dav1d> see the problem?
[12:41:08] <ekn2> No
[12:41:14] <dav1d> you're not calling the real glGetString
[12:41:18] <ekn2> I know
[12:41:20] <ekn2> Isn't that good?
[12:41:37] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[12:41:42] <dav1d> now add a library that depends on glGetString, when that library calls glGetString it will get garbage back
[12:41:42] <ekn2> It means if glad defined glGetString, the user wouldn't have to worry about calling the wrong glGetString
[12:42:01] <dav1d> so that library would most likely crash, it would 100% crash if glGetString was null
[12:42:34] <ekn2> I don't understand
[12:42:39] <ekn2> What library?
[12:42:52] <dav1d> any that you have as dependency
[12:42:59] <ekn2> I don't have any
[12:43:08] <dav1d> no shit
[12:43:15] <dav1d> wasnt your question why glad does it?
[12:43:21] <dav1d> that's the reason
[12:43:37] <dav1d> not because of you, a guy without dependencies
[12:43:38] <ekn2> So I can understand, let's pretend I am using SDL
[12:43:43] <dav1d> yes
[12:44:01] <ekn2> So SDL includes glad.h, and links agaist glad.o
[12:44:12] <dav1d> SDL tries to access glGetString and gets garbage back or a segfault since the symbol of libgl was overwritten with a different one
[12:45:11] <ekn2> I'm still not understanding. I'm going to make a dummy library that defines glGetString, link against my lib and libgl, and see what happens
[12:45:28] <dav1d> https://stackoverflow.com/a/617588/969534
[12:45:33] <dav1d> pretend test is glGetString
[12:46:07] <ekn2> I don't want to read all this stuff about GCC special features
[12:46:29] <ekn2> This isn't standard C
[12:46:34] <dav1d> it's the same thing
[12:46:49] <ekn2> This is a lot of context to understand just to understand something more fundamental
[12:46:54] <ekn2> I'll try for 5 minutes
[12:46:55] <dav1d> it's an example
[12:47:19] <ekn2> Did you mean to link to that specific answer?
[12:47:21] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 252 seconds)
[12:47:27] <dav1d> you have 2 symbols with the same name, one survives, if the "wrong" one survives shit is gonna blow up
[12:47:37] <dav1d> tl;dr;
[12:50:52] *** sumyunseal1 <sumyunseal1!~sumyunsea@cpe-75-82-22-197.socal.res.rr.com> has quit IRC (Ping timeout: 256 seconds)
[12:51:45] <ekn2> I read the post, but it didn't make sense to me. The answers were more to do with how to accomplish the authors goals rather than explaining how the C language behaves
[12:51:57] <ekn2> I'm making an example program
[12:52:03] <ekn2> Maybe I can understand
[12:52:07] <dav1d> it's not the language, it's the linker
[12:52:18] <dav1d> maybe a bad example, but that's basically what happens
[12:52:59] *** cfoch_ <cfoch_!uid270777@gateway/web/irccloud.com/x-rotufgioiszhuyux> has joined ##OpenGL
[12:53:15] *** Asu <Asu!~sdelang@AMarseille-658-1-121-46.w86-219.abo.wanadoo.fr> has joined ##OpenGL
[12:55:49] <dav1d> DarkUranium: def. a bug, but non-trivial to fix - not sure if I will fix that. glad2 does it properly already
[12:57:48] <ekn2> Okay, I made an example and I got a Segmentation Fault
[12:58:11] <ekn2> Is there a site for uploading multiple C files?
[12:58:26] <zid> github
[12:58:34] <ekn2> Like a pastebin site
[12:58:52] <zid> github
[12:59:04] <ekn2> That doesn't require an account
[12:59:07] <zid> github
[12:59:14] <ekn2> And the files expire after a period of time
[12:59:37] <ekn2> nmv
[12:59:39] <ekn2> nvm
[12:59:42] <ekn2> I'll just cat my files
[13:02:45] <ekn2> https://pastebin.com/raw/j5M5baKk
[13:02:48] <DarkUranium> back
[13:03:01] <ekn2> Here is the code that gives a segfault. Do you think it is a valid test?
[13:03:04] <DarkUranium> dav1d, didn't glad2 have some *other* bugs, though? (can't recall what, specifically)
[13:03:50] <zid> https://gist.github.com/anonymous/e2faedc770ee557533226e87501f3d69
[13:04:19] <ekn2> Is that against the rules?
[13:04:27] <dav1d> DarkUranium: still quite a few
[13:04:32] <dav1d> I'd imagine
[13:04:58] <ekn2> zid: Do you need to do that to feel better about life?
[13:05:20] <DarkUranium> dav1d, well, at least I know I can work around it with the `compatibility` profile. Maybe put a warning on the page or something, at least?
[13:06:12] <dav1d> DarkUranium: thinking of just disallowing anything but compatibility if you select any GLES version
[13:06:56] <DarkUranium> or that.
[13:07:17] <DarkUranium> or change it into `n/a`, which is technically the most correct one!
[13:08:56] <ekn2> Cool, so when I remove -lGL I don't get a segfault. I at least have an example that captures the behavior
[13:09:29] <ekn2> Not sure what is going on though. Just implemented things as you described
[13:10:03] <DarkUranium> ekn2, well, without a GL context, glGetString() won't work.
[13:10:18] <DarkUranium> and you should really, *REALLY* go learn about C some.
[13:10:55] <ekn2> I have read and done all the exercises in The C Programming Language
[13:11:29] <ekn2> It doesn't seem like you read my example carefully. glGetString does work because I defined it
[13:11:37] *** borkr <borkr!~borkr@static130-244.mimer.net> has quit IRC (Remote host closed the connection)
[13:11:52] <DarkUranium> ... but only when you remove -lGL
[13:11:58] <DarkUranium> which has a lot to do with how C compiles & links.
[13:12:03] <DarkUranium> hence me telling you to go read up on that.
[13:12:08] <ekn2> I know. That is what I am trying to learn about
[13:12:19] <DarkUranium> it has nothing to do with OpenGL.
[13:12:23] <ekn2> Why are you telling me to read what I am trying to learn about
[13:12:29] <ekn2> That's kind of obvious
[13:12:59] <DarkUranium> because this is ##opengl, and your problem is unrelated to it
[13:13:05] *** borkr <borkr!~borkr@static130-244.mimer.net> has joined ##OpenGL
[13:13:13] <DarkUranium> try ##c
[13:13:24] <ekn2> Alright, well it started out related because I was talking about glad. Sorry if it bugs you
[13:13:30] <ekn2> I will
[13:13:50] *** davr0s <davr0s!~textual@host81-155-66-141.range81-155.btcentralplus.com> has joined ##OpenGL
[13:15:49] *** borkr <borkr!~borkr@static130-244.mimer.net> has quit IRC (Remote host closed the connection)
[13:19:52] *** nogravityrush is now known as notAI
[13:20:38] *** Degot <Degot!~Degot@zeropitarr.ru> has quit IRC (Quit: Deep, Deep , I'm not yours)
[13:20:50] *** borkr <borkr!~borkr@static130-244.mimer.net> has joined ##OpenGL
[13:21:20] *** notAI is now known as notoAI
[13:24:42] <ekn2> /join ##c
[13:33:18] *** m92 <m92!~m92@178-223-39-199.dynamic.isp.telekom.rs> has quit IRC (Quit: Textual IRC Client: www.textualapp.com)
[13:38:33] <dav1d> DarkUranium: http://glad.dav1d.de/generated/tmphgmtbMglad/
[13:39:01] <DarkUranium> dav1d, that works :P
[13:39:07] <dav1d> made the code even uglier
[13:39:10] <ekn2> I was told my question has nothing to do with C and only with library linking semantics
[13:39:10] <dav1d> FeelsGood
[13:39:23] <notoAI> so its just loading then
[13:39:26] <notoAI> lulz
[13:39:39] <notoAI> cause i tried tons of vector on java
[13:39:43] <notoAI> lwjgl
[13:39:52] <ekn2> I made this example which doesn't use GL, but two dummy libraries, and no segmentation fault occurs: https://pastebin.com/raw/ZNe6gaW4
[13:40:02] <notoAI> and it cant handle obj loding
[13:40:04] <notoAI> objkenobe
[13:40:19] <ekn2> For some reason the function in library a gets called
[13:41:17] <dav1d> ekn2: try swapping -la with -lb
[13:41:36] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[13:41:39] <zid> Link order is what matters here, both symbols are strong
[13:41:49] <ekn2> Yeah, now b's f gets called
[13:42:08] <zid> if you didn't want order to matter you'd have to mark one as a weak symbol
[13:42:30] <ekn2> I guess in the GL case, GL's glGetString gets called and it is null
[13:43:06] <dav1d> no surprising without a context
[13:43:13] <ekn2> This has nothing to do with the C programming language
[13:43:47] <dav1d> exactly
[13:43:50] <dav1d> also nothing with opengl
[13:44:05] <ekn2> Now I understand why glad does what it does
[13:44:22] <dav1d> yay?
[13:44:31] *** KAHR-Alpha <KAHR-Alpha!~Alpha@2a01cb0d04c9050045eb97cb79cc4f07.ipv6.abo.wanadoo.fr> has joined ##OpenGL
[13:44:40] <ekn2> Well, DarkUranium said I should "really, *REALLY* go learn about C some", when that is beside the point
[13:44:52] <ekn2> Maybe he should have said linkers
[13:45:23] <dav1d> programming C includes knowhing how to link your shit
[13:45:51] <DarkUranium> ^
[13:46:04] <dav1d> *knowing
[13:46:12] <ekn2> It seems like the objective is to making me feel bad than anything else
[13:46:31] <dav1d> tbh couldnt care less how you feel
[13:47:10] <zid> You've made a great impression so far ekn2
[13:47:13] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 240 seconds)
[13:47:19] <zid> ignoring help, demanding help, then whining about getting it
[13:47:45] <ekn2> You called me a moron
[13:48:08] <ekn2> This atmosphere is bad
[13:48:10] <dav1d> Well not surprised he got that impression
[13:48:50] <ekn2> So, personal insults are okay in this channel? I never insulted anyone
[13:48:53] <DarkUranium> Look, ekn2, all we're saying is that 1) this is a C problem, not an OpenGL problem, and 2) it's critical to understand how linking works if you're programming C.
[13:49:18] <ekn2> I went to ##c and they said it's unrelated to C
[13:49:25] <ekn2> You advised I go there
[13:49:54] <DarkUranium> what did you ask?
[13:50:05] <DarkUranium> this definitely *IS* related to C
[13:50:16] <ekn2> I know some about linking and have linked many C programs, but I didn't know about this particular case of linking two libraries with the same function defined
[13:50:37] <DarkUranium> then you *kind of* know how to use it, but not how and why it works.
[13:50:47] <ekn2> Yeah, true
[13:50:49] <ekn2> So what?
[13:51:02] *** raynold <raynold!uid201163@gateway/web/irccloud.com/x-lwplijmtyjfnhoae> has quit IRC (Quit: Connection closed for inactivity)
[13:51:04] <ekn2> What is the point of saying that. It's just what I'm trying to find out
[13:52:03] <ekn2> I never demanded any help either. I don't know what I whined about
[13:52:06] *** mefesto <mefesto!~user@107.145.49.162> has joined ##OpenGL
[13:52:15] <DarkUranium> the point of saying that is to respond to you saying that you know some about linking and have linked many C programs.
[13:52:30] <ekn2> You said that before I said that
[13:52:43] <DarkUranium> what?
[13:52:48] <DarkUranium> [13:50:16] <ekn2> I know some about linking and have linked many C programs, but I didn't know about this particular case of linking two libraries with the same function defined
[13:52:48] <DarkUranium> [13:50:37] <DarkUranium> then you *kind of* know how to use it, but not how and why it works.
[13:53:11] <ekn2> You were saying before that "it's critical to understand how linking works if you're programming C"
[13:53:27] <ekn2> You are just reiterating that I don't know something, which I never said I didn't, and I'm not sure why
[13:53:34] <ekn2> *never said I did
[13:54:22] <DarkUranium> That was me summing up the conversation, and trying to break up the flame war above.
[13:54:27] <DarkUranium> Clearly, I've been fished.
[13:54:32] <DarkUranium> err, s/fished/baited/
[13:54:37] *** BearishMushroom <BearishMushroom!~BearishMu@82-209-154-59.cust.bredband2.com> has joined ##OpenGL
[13:54:59] <DarkUranium> but yes, linking has everything to do with C. The guys in ##c were wrong, or you stated your question in a manner that seemed like an OpenGL question.
[13:55:01] <DarkUranium> but whatever.
[13:55:44] <ekn2> Okay. I'm not trying to bait anyone.
[13:56:02] <ekn2> I just don't get why I've created a negative impression
[13:56:49] <ekn2> I didn't understand why glad did something. I asked dav1d about it. I didn't understand, so I made an example program. The example program had more to do with linking. You said I don't understand linking.
[13:56:53] <ekn2> That's the story so far
[13:57:27] *** mefesto <mefesto!~user@107.145.49.162> has quit IRC (Quit: ERC (IRC client for Emacs 25.3.1))
[13:57:37] <ekn2> I get called a moron, and told that I'm whining and demanding things. dav1d implies I'm a moron too
[13:57:52] <ekn2> I don't think I deserved that
[13:59:09] <dav1d> not saying you're a moron you just come across very stubborn and full of your own ideas - initially rejecting most of what is said. (that's how you come across, not gonna argue about that)
[13:59:53] <dav1d> and people here spending their free time to help others dont really feel like putting up with that (imo understandably)
[14:01:30] <ekn2> If I don't understand something, I don't just go along with what people are saying. It takes me a long time to understand things sometimes. I undertand if people lose patience, but I would like to be able to discuss my problem with whomever has the patience. Can't people just not respond if they don't want to help?
[14:04:33] *** threenuc <threenuc!~threenuc@88.156.163.16> has quit IRC (Remote host closed the connection)
[14:04:52] *** threenuc <threenuc!~threenuc@88.156.163.16> has joined ##OpenGL
[14:05:47] *** SiN_Bizk1t <SiN_Bizk1t!~SiN_Bizki@user-79-136-182-100.tomtelnet.ru> has quit IRC (Quit: Lost terminal)
[14:07:41] <ekn2> I think, stubborn in the case of an opinion is being not willing to change one's opinion. In the case of facts, it's not being willing to change one's belief based on contrary evidence. If I don't understand the evidence, it's not a resistance to the truth. It's just me taking a long time to understand something.
[14:08:01] <derhass> ekn2: maybe you're taking the things which are said too personally. usually, they aren't meant that way
[14:08:19] <ekn2> derhass: When someone calls me a moron that's pretty personal
[14:08:42] <ekn2> Also sarcasm, and using ^
[14:08:55] <ekn2> The general tone seems negative
[14:09:13] <ekn2> Probably just because I run out peoples patience by being slow
[14:09:17] <spear2> ekn2: i don't see the word "moron" before you used it
[14:09:42] <ekn2> < zid> https://gist.github.com/anonymous/e2faedc770ee557533226e87501f3d69
[14:10:34] *** stefkos <stefkos!~Pawel@82.177.144.226> has joined ##OpenGL
[14:10:41] <spear2> heh well that was after you ignored the correct answer from zid 3 times
[14:11:11] <Yaniel> still goes a bit too far
[14:11:19] <ekn2> It wasn't a "correct answer". It was an opinion about what service I should use to upload code
[14:11:30] <Dariusz_> what do I call ||ce|| this again?
[14:11:32] <Dariusz_> in math
[14:11:41] *** ravior <ravior!~crapitea@38.132.111.173> has quit IRC (Ping timeout: 252 seconds)
[14:11:45] <Yaniel> Dariusz_: magnitude?
[14:11:55] <Yaniel> sometimes also written |ce|
[14:12:10] <Dariusz_> magnitude hmmmmmmmm
[14:12:24] <DarkUranium> Dariusz_, what's `ce`?
[14:12:25] <Yaniel> ekn2: you asked for a service and gist fits the criterion you listed
[14:12:29] <DarkUranium> Dariusz_, vector or matrix or what?
[14:12:37] <zid> DarkUranium: fwiw there's a ##binutils
[14:13:07] <DarkUranium> zid, for linkage-related stuff? I still think it's related closer to C, but then, people in ##c are assholes.
[14:13:19] <Dariusz_> I think its vector3d, I'm reading this document http://www.songho.ca/opengl/gl_camera.html for 50th time, and there is f = ve-vt/||ve-vt|| I dunno what is the result of the bottom part
[14:13:20] <zid> ##c is about the C programming language
[14:13:32] <zid> which order your link options have to be for binutils is a binutils issue
[14:13:34] <DarkUranium> zid, and does that not include linking C object files?
[14:13:38] <zid> no it doesn't
[14:13:41] <derhass> DarkUranium: well, it isn't. the C standard doesn't define linking, that is a platform-specific thing
[14:13:41] <DarkUranium> sure it does.
[14:13:44] <zid> C doesn't know what a linker is
[14:13:45] <Yaniel> Dariusz_: magnitude, what's happening is that ve-vt is normalized
[14:13:48] <ekn2> Yaniel: I don't think the code gets deleted
[14:14:04] <Dariusz_> so basically. ve.normalize()-vt.normalize() ?
[14:14:06] <zid> C is defined in terms of an abstract machine
[14:14:11] <derhass> Dariusz_: it is the l2-norm
[14:14:18] <DarkUranium> derhass, well, that's practical vs theoretical concerns. If ##c is about the C standard only, then maybe it should be called ##cstd.
[14:14:31] <zid> DarkUranium: It is, the C standard is called C
[14:14:34] <derhass> Dariusz_: normalize(ve-vt)
[14:14:42] <zid> If you wanted cprogramming go to #cprogramming
[14:14:58] <DarkUranium> zid, by your logic, ##c is almost useless.
[14:15:03] <derhass> no
[14:15:04] <zid> ##c is almost useless yes
[14:15:07] <zid> unless you want to learn C
[14:15:13] <ekn2> It's not useless
[14:15:14] <zid> That's its singular use
[14:15:17] <ekn2> I used it a lot when learning C
[14:15:18] <derhass> there's a lot of language lawyering there
[14:15:23] <derhass> which can be interesting at time
[14:15:24] <ekn2> That's good IMO
[14:15:25] <Dariusz_> hmmm, interesting. Ok thanks! Love it by the way. Its like fixing bugs. You read match equasion, you see symbol, you google it, its entire new math equation = bug fixing, I fix 1 of 100 bugs, 10 more pops up :- )
[14:15:25] <derhass> *times
[14:15:40] <zid> fwiw all the lawyering stopped and now dho is the active op so it's a shithole
[14:15:47] <zid> it used to be good when it was me + kate + zhiv etc
[14:15:48] <Yaniel> zid: tone it down a bit in the future, will ya; no need to be rude even when demonstrating things
[14:16:01] <ekn2> Zhivago is still in there
[14:16:04] <zid> Yaniel: I reserve the right to call people the most mild names when they ignore me three times
[14:16:10] <ekn2> He just answered a question I asked
[14:16:32] <ekn2> He knows a lot about C, but he likes to insult people
[14:16:45] <Yaniel> that is not necessary either
[14:17:15] <Yaniel> (but I'd be tempted to, too)
[14:19:07] <ekn2> zid: You just spammed github when I was clarifying what I what I meant by a pastebin-like site. I don't think I could have assumed you knew all of what I wanted before I said so
[14:19:19] <derhass> Dariusz_: actuallt, that formula is saying (1/length(ve-vt)) * (ve-vt) which of course is just vector normalization
[14:19:29] <Yaniel> ekn2: you could also have said what you wanted in one line
[14:19:56] <ekn2> I could have. I thought it was clear by referencing pastebin that I wanted somethig with pastebin's features
[14:21:19] <Dariusz_> hmmmmmmm
[14:21:49] <DarkUranium> Dariusz_, hmmmmmmm?
[14:22:41] *** salamanderrake <salamanderrake!~quassel@cpe-24-165-198-229.neo.res.rr.com> has quit IRC (Ping timeout: 252 seconds)
[14:22:50] <Dariusz_> totally not what I understood
[14:23:15] <DarkUranium> Dariusz_, |v| or ||v|| for a vector `v` are the same thing.
[14:23:28] <Dariusz_> what I got was (vec3e - vec3t)/(vec3e-vec3t).normalize()
[14:23:55] <DarkUranium> Dariusz_, they are the magnitude of the vector, or its L^2-norm (also called the Euclidean norm).
[14:23:57] <DarkUranium> oh, that.
[14:24:10] <DarkUranium> what are you *trying* to do?
[14:24:18] <Dariusz_> understand :D
[14:24:28] <Yaniel> it's (e-t)/((e-t).length())
[14:24:35] <DarkUranium> I mean, understand what?
[14:24:45] <Dariusz_> not normalize?
[14:24:56] <Yaniel> normalize gives you a unit vector
[14:25:10] <Dariusz_> so thats not || ?
[14:25:13] <Yaniel> |v| gives you the length aka magnitude of v
[14:25:23] <Yaniel> or ||v|| depending on who writes the paper
[14:25:29] <Dariusz_> humh
[14:25:29] <Yaniel> because yay, consistent notations
[14:25:45] <Yaniel> and v/|v| divides v by its length
[14:25:49] <Yaniel> i.e. normalizes it
[14:26:11] <Dariusz_> so (vec3e - vec3t)/(vec3e-vec3t).length(), humh
[14:26:42] <Dariusz_> and the f(blue line) stands for rotation?
[14:26:42] <DarkUranium> forget the subtraction for starters.
[14:26:48] <DarkUranium> consider what just v/v.length() does.
[14:27:40] <Dariusz_> no idea
[14:28:15] <DarkUranium> well, what's the type of `v`?
[14:28:18] <Dariusz_> hmm
[14:28:22] *** salamanderrake <salamanderrake!~quassel@cpe-24-165-198-229.neo.res.rr.com> has joined ##OpenGL
[14:28:30] <Dariusz_> v is vector3d (I'm googling now formulas for vec3 length())
[14:28:40] <DarkUranium> uhm, yeah
[14:28:49] <DarkUranium> remember when we said you should learn about vectors? Seriously, you should do that.
[14:28:52] <zid> lenght is easy it's pythagoras
[14:29:05] <DarkUranium> this is basic stuff, and you'll save a *LOT* of time in the long run if you learn it now
[14:29:08] <zid> If you have to google rather than being able to figure that out, you need to take a long hard look at yourself
[14:29:47] <Dariusz_> its not so easy to learn for me :- (
[14:30:25] <zid> Because you don't try, you just google
[14:30:25] <DarkUranium> Probably because you keep persuading yourself that it isn't.
[14:30:29] <DarkUranium> Give it a shot, you might surprise yourself.
[14:30:37] <zid> if you never try you never practice
[14:34:55] <DarkUranium> Dariusz_, start with vectors, move onto matrices, then ... what was the order from the other day again?
[14:35:21] <DarkUranium> IIRC, affine transformations, and then homogeneous coordinates
[14:35:37] <Dariusz_> the linear algebra/and other hard to pronouce math stuff?, I have copy of chat stored to read up when I have an idea what to do :- )
[14:35:41] <DarkUranium> linear maps between matrices and affine transformations.
[14:35:51] <Dariusz_> yep thats it
[14:36:24] <DarkUranium> Vectors->matrices->linear maps->affine transformations->homogeneous coordinates. You can do it, we believe in you!
[14:36:27] <DarkUranium> (no, really)
[14:36:54] <DarkUranium> AND NOW FOR SOMETHING COMPLETELY DIFFERENT!
[14:37:00] <ekn2> I think pictures would be more useful than chat logs for a lot of linear algebra stuff. A textbook or online resource would have that
[14:37:01] <DarkUranium> ... guys, I have an opinion poll/question here.
[14:37:44] <Dariusz_> I'm getting to the point where I'm starting to google people who can sit with me & teach me maths because I aint getting the job done myself. :/
[14:37:45] <ekn2> Seems like he is just using the chat logs as like recipies to apply in certain situations
[14:37:47] <DarkUranium> Type names: `vec2` / `mat2x3` / `mat4`, vs `float2` / `float3x2` (note the reversal; this uses the mathematical ${ROWS}x${COLS} order) / `float4x4`
[14:37:58] <DarkUranium> For a custom shading lang. Which one would you recommend?
[14:38:32] <DarkUranium> Dariusz_, I might be willing to help you out, but only if you're willing to commit the time.
[14:38:44] <DarkUranium> ekn2, inline TeX math would be great for this channel =D
[14:39:07] <DarkUranium> \[ X = \lim_{n \downto 0} ... \]
[14:40:00] <ekn2> I took a linear algrebra class and we used a textbook. I think if you're disciplined you can just read the textbook and do the exercises on your own. It's probably hard for people who want to make games or something to take a detour and study something that doesn't seem directly related. It was a bit for me to, but I realized it's a good habit sometimes
[14:40:18] <zid> I just watched 3b1b's video
[14:40:38] *** reddv <reddv!~dredev@r61-27-ka.inext.cz> has joined ##OpenGL
[14:40:54] <DarkUranium> zid, hm?
[14:41:23] <zid> https://www.youtube.com/watch?v=kjBOesZCoqc
[14:41:26] <DarkUranium> anyhow, zid / Yaniel / derhass: any opinions from your end, on the type names?
[14:41:31] <Dariusz_> Dark currently while I'm low on cgi projects I'm spending as much time on it as I can on it. Buts its a bit "hard" as any question I try to answer is like rabbit hole. 1 equation question lead to next/next/next. To the point where I get totally lost and not even know how to apply the knowledge in code :/
[14:41:38] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[14:42:01] <zid> DarkUranium: I just use vec4 mat4 etc to keep consistent with opengl
[14:42:02] <DarkUranium> Dariusz_, start with zid's video.
[14:42:06] *** KAHR-Alpha <KAHR-Alpha!~Alpha@2a01cb0d04c9050045eb97cb79cc4f07.ipv6.abo.wanadoo.fr> has quit IRC (Quit: ChatZilla 0.9.93 [Firefox 52.6.0/20180118122319])
[14:42:17] <DarkUranium> zid, As I said, it's for a custom shading lang. GLSL does not exist in this context.
[14:42:24] <DarkUranium> (it does in the sense that it's gonna be one of the compilation targets)
[14:42:30] <zid> DarkUranium: consistency is key to learning anything
[14:42:42] <DarkUranium> zid, keep in mind that I'll also add quaternions (in GLSL, vec4) & complex numbers (vec2)
[14:42:49] <zid> There's probably a reason you use 'for' and 'while' or whatever keywords you have rather than 'thusly' and 'evokes' etc
[14:42:51] <DarkUranium> as builtin types, I mean.
[14:42:53] <DarkUranium> sure.
[14:42:59] *** KAHR-Alpha <KAHR-Alpha!~Alpha@2a01cb0d04c9050045eb97cb79cc4f07.ipv6.abo.wanadoo.fr> has joined ##OpenGL
[14:43:05] *** ngm <ngm!~nishanth@183.82.187.154> has quit IRC (Remote host closed the connection)
[14:43:13] <DarkUranium> zid, that's an argument in favour of float4, though.
[14:43:21] <Yaniel> then again D3D uses float instead of vec/mat
[14:43:26] *** ngm <ngm!~nishanth@183.82.187.154> has joined ##OpenGL
[14:43:26] <zid> I name arrays liek that anyway when I wrap them in structs
[14:43:33] <Yaniel> and with vec/mat you end up having ivec/imat etc variants
[14:43:34] *** Neomex <Neomex!~quassel@net-37-117-5-106.cust.vodafonedsl.it> has quit IRC (Read error: Connection reset by peer)
[14:43:38] <DarkUranium> because they're all <base_type>NxM
[14:43:41] <DarkUranium> exactly.
[14:43:41] <Yaniel> which gets slightly awkward
[14:43:49] <DarkUranium> Yaniel, also, don't forget OpenCL (another target of mine)
[14:43:51] <zid> Ideally we'd just not be using C syntax and wouldn't have this problem :P
[14:44:00] <DarkUranium> which also uses float4 (has no float4x4 and such, though, IIRC)
[14:44:09] <zid> This is the one area where C is hard to express things
[14:44:21] <zid> in*
[14:44:26] <DarkUranium> zid, care to elaborate exactly what you mean?
[14:44:53] <zid> DarkUranium: arrays with no types, passing arrays, multidimension arrays etc are all either not possible cleanly or at best awkward
[14:44:59] <DarkUranium> Yaniel, anyhow, an example would be (for scalar/vector/matrix/complex/quaternion): float, float3, float3x2, cfloat, qfloat
[14:45:17] *** RonaldsMazitis <RonaldsMazitis!~quassel@78.84.29.65> has quit IRC (Remote host closed the connection)
[14:45:17] <DarkUranium> zid, arrays with no types ... you mean void[]?
[14:45:20] <DarkUranium> we're still talking about GLSL, right?
[14:45:31] <zid> No I am talking about language design
[14:45:51] <DarkUranium> I fail to see how that's awkward, D for example does most of that just fine.
[14:45:54] <zid> In an ideal world we wouldn't need to name these types there would either be a fixed system for their typenames infered from their shape and/or data
[14:46:03] <DarkUranium> right.
[14:46:21] <DarkUranium> problem is, you can't *always* infer the type without an explicit declaration
[14:46:32] <zid> or we'd be able to compose and decompose matrices with operators that produce new types properly
[14:46:54] <DarkUranium> consider a library (in pseudo-C++): `auto arr[30];`
[14:46:57] <zid> You can't end up with a float[4] in C by pointing something to a chunk of a float[16], you just have a float *
[14:47:07] <DarkUranium> now, if some "nearby" code uses it, you can infer; but if not, you're in trouble
[14:47:08] <zid> So a language that COULD do that I would be interested in, at least for mtrix crap
[14:47:10] <zid> then compile that to C
[14:47:33] <DarkUranium> ah, you're talking about C specifically.
[14:47:40] <zid> C syntax was the base
[14:47:40] <DarkUranium> my bad, I thought you were talking about languages generally.
[14:47:47] <zid> I said "C lacks.." and you said explain
[14:48:14] <zid> I'd like /some/ language that makes it easier to deal with matrices, and pointed out what's hard in C. I'm not sure what a good language would look like though sadly :D
[14:48:37] <DarkUranium> zid, okay, what would make matrices easier to deal with?
[14:48:51] <DarkUranium> I mean, the language I'm working on, not the shading lang, but the CPU-side lang, will have matrices in it
[14:49:00] <DarkUranium> you mentioned composition and decomposition; elaborate?
[14:49:05] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 252 seconds)
[14:49:10] <zid> DarkUranium: Operators to take chunks and combine chunks, for starters
[14:49:18] <zid> but you end up looking like APL in practice if you do that, I feel
[14:49:52] <zid> so if I wanted the 2nd column of a matrix, I don't have to write float4 f = chop(my_mat4x4, 4, 4, 2);
[14:50:03] <DarkUranium> right
[14:50:19] <zid> I think to get around that you'd actually just take the value of the column
[14:50:29] <zid> col2(mat4) would produce the value of a vector, like glsl
[14:50:38] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[14:50:44] <DarkUranium> for my lang, I'll have indexing handle that.
[14:50:48] <zid> where you can do weird compositions like mat4(vec4_a, vec4_b, ...)
[14:51:01] <DarkUranium> in Python syntax (just because slicing), something like: mat[2,:]
[14:51:09] <DarkUranium> that's row 2, all columns.
[14:51:21] <zid> I'd just leave the : out
[14:51:27] <zid> unless you can't parse it otherwise
[14:51:28] <DarkUranium> mat[2,]?
[14:51:33] <zid> mat[2] and mat[,2]
[14:51:39] <zid> for each dimension
[14:51:40] <DarkUranium> one, that's ugly
[14:51:48] <DarkUranium> two, that's *REALLY* ugly once you add more dimensions.
[14:51:57] <DarkUranium> obj[,,,5]
[14:51:59] <zid> how does yours work to take the 4th dimension
[14:52:14] <DarkUranium> obj[:,:,:,5] it's explicit
[14:52:15] <zid> I must have misunderstood
[14:52:23] *** notoAI <notoAI!~textual@2600:1700:89c0:1780:10f0:1f1b:6de8:a790> has quit IRC (Quit: My Mac Pro has gone to sleep. ZZZzzz…)
[14:52:24] <zid> okay so I didn't
[14:52:30] <DarkUranium> there's no 4th for matrices specifically, I'm talking generally
[14:52:34] <zid> I don't see the strength in your objection, they're identical but for :s
[14:52:42] <DarkUranium> (because having a syntax exception just for matrices would be ugly)
[14:52:54] <DarkUranium> sure, but the former means you have to count empty spaces *between* the commas
[14:52:57] <DarkUranium> it can easily get confusing
[14:53:00] <zid> I think the syntax should be top-down from the matrices
[14:53:09] <zid> else you end up with 2nd class matrix citizens like other langs
[14:53:26] <DarkUranium> it's not a shading lang, the one I'm talking about now.
[14:53:31] <zid> If you having super clean matrix syntax makes integer addition sort of odd, that is probably worth the trade-off
[14:53:38] <zid> imo
[14:53:44] <DarkUranium> and I don't think typing a single ':' is a big deal.
[14:53:52] <zid> I don't think either is any good
[14:53:53] <DarkUranium> besides, mat[2] vs mat[,2] is inconsistent
[14:54:02] <DarkUranium> why does one only specify one dimension, and the other two?
[14:54:09] <zid> you'd rather mat[2,,,,,,,]?
[14:54:11] <DarkUranium> okay, then what syntax would you want?
[14:54:20] <zid> I don't know, we're doing that now I thought!
[14:54:25] <DarkUranium> you're saying you'd rather that
[14:54:29] <DarkUranium> actually, doesn't GLSL allow mat[x]?
[14:54:36] <zid> maybe I don't do a whole lot of it honestly
[14:55:02] <DarkUranium> you're the one who proposed omitting the ':'
[14:55:06] <DarkUranium> not me.
[14:55:09] <zid> yea?
[14:55:19] <zid> me saying the : seems superfluous doesn't mean I have to know glsl well does it?
[14:55:39] <DarkUranium> no, but then you said "you'd rather mat[2,,,,,,]?" which was exactly your proposal, so uhm
[14:55:41] <DarkUranium> I'm a bit lost.
[14:55:47] <zid> no mine was [2]
[14:55:58] <zid> you said that doesn't work because it omits a bunch of 'this column isn't taken'
[14:55:59] <DarkUranium> it's just mat[2,]
[14:56:11] <DarkUranium> not mat[2,,,,,,]
[14:56:13] <zid> so I gave an example on a matrix with lots of dimensions
[14:56:23] <DarkUranium> a matrix has only 2. I and J.
[14:56:34] <zid> But for syntax you want to care about the extremes
[14:56:40] <DarkUranium> I was giving a general example when I mentioned more. I am *NOT* special-casing syntax just for matrices, that's how you end up with crap like Perl.
[14:56:47] <zid> else you end up with a lgnauge that looks great for simple stuff but immediately becomes a nightmare for un-simple stuff
[14:56:57] <DarkUranium> really, a single ',' or ',:' is un-simple?
[14:56:58] <zid> which is why I responded that everything else should just use matrix syntax
[14:57:04] <zid> even if it makes integers weird
[14:57:05] <DarkUranium> it cannot.
[14:57:16] <DarkUranium> IT IS NOT A SHADING LANGUAGE.
[14:57:16] <zid> We're talking about my ideal language here as well remember
[14:57:21] <zid> I don't want a shading language
[14:57:24] <zid> I want C that can deal with matrices
[14:58:12] <DarkUranium> then the rest would be a nightmare.
[14:58:20] <DarkUranium> trying to use scalars or arrays or vectors or, really, anything
[14:58:23] <DarkUranium> and don't get me started on structs
[14:58:32] <zid> That's specifically why I used [2]
[14:58:42] *** nogravityrush <nogravityrush!~textual@2600:1700:89c0:1780:10f0:1f1b:6de8:a790> has joined ##OpenGL
[14:58:44] <DarkUranium> how does that change anything?
[14:58:46] <zid> because if that is the syntax to take the 2nd of something and ignore the rest
[14:58:53] <zid> it also works for regular arrays
[14:59:12] <DarkUranium> yes, but a matrix is a 2D thing, and a [2] is a 1D spec.
[14:59:22] <DarkUranium> so you want to have implicit trailing commas and full slices just for that
[14:59:26] <DarkUranium> which would wreak havoc with arrays.
[14:59:39] <zid> right, and a 0D slice of a 1D array is an element
[14:59:48] <zid> and a 1D slice of a 2D array is a row/col
[14:59:49] <DarkUranium> let me rephrase
[14:59:54] <DarkUranium> doing mat[2] on matrices
[14:59:57] <DarkUranium> is the equivalent of doing arr[]
[15:00:08] <DarkUranium> you're indexing a 1D structure with 0 dimensions.
[15:00:18] <DarkUranium> and, with matrices, you're indexing a 2D structure with 1 dimension.
[15:00:22] <zid> (note this is exactly hwo C works with multidimensional arrays, but you need to involve pointers rather than dealing directly with values)
[15:00:31] <zid> (because type info is lost when an array name is used in an expression)
[15:00:42] <DarkUranium> only topmost type info.
[15:00:53] <DarkUranium> if *all* info were lost, then foo[3][7][5] would be impossible.
[15:01:08] <DarkUranium> `int foo[20][30][40];` is completely fine in C.
[15:01:12] <zid> yes
[15:01:14] <zid> that is not an expression
[15:01:23] <DarkUranium> but `foo[3][7][5]` is.
[15:01:28] <zid> that has type T
[15:01:31] <DarkUranium> `foo[3]` is an expression.
[15:02:01] <zid> which you would like to have type T[7][5] but cannot appear as an lvalue, etc
[15:02:08] <zid> so doesn't actually work in most contexts
[15:02:29] <DarkUranium> how do you think is `foo[3][7][5]` parsed?
[15:02:30] <zid> It just turns into a generic T * when evaluated
[15:02:56] <zid> see: char a[32] = "hello"; strlen(a);
[15:03:09] <zid> There is no casting there, it just evaluates to a char *
[15:03:09] <DarkUranium> foo[3] is not a `int*`
[15:03:23] <DarkUranium> it is an `int (*[30][20])`
[15:03:26] <DarkUranium> err, [30][40]
[15:03:36] <zid> (int (*)[30])[20] :P
[15:03:47] <DarkUranium> right, whatever
[15:03:50] <DarkUranium> point is, it's not just `int*`
[15:03:59] <DarkUranium> if it were just `int*` then foo[3] => int*
[15:04:01] <DarkUranium> foo[3][7] => int
[15:04:03] <zid> I didn't say it was, I said it literally cannot appear as an lvalue
[15:04:06] <DarkUranium> foo[3][7][5] => ???
[15:04:19] <zid> foo[3][7][5] is UB
[15:04:26] <zid> :P
[15:04:28] <DarkUranium> why?
[15:04:34] <zid> it's outside the bounds on all three arrays
[15:04:42] <DarkUranium> it was [20][30][40]
[15:04:45] <zid> oh you meant that new one
[15:04:45] <DarkUranium> it's well inside the bounds.
[15:04:51] <zid> or did I just miss that line
[15:05:07] <DarkUranium> foo[3][7][5] was the expression, not the declaration
[15:05:11] <zid> ah I see I just latched onto that
[15:05:12] <DarkUranium> you'll notice I wrote the declaration as one.
[15:05:22] <zid> I just saw that and started talking about it
[15:05:31] <zid> ignoring the next thing you said becaus eI am a terrible person
[15:05:36] <DarkUranium> <_<
[15:06:54] <DarkUranium> at any rate, the comma in `mat[2,:]` doesn't separate columns, it separates dimensions
[15:06:55] <zid> I mean, I understand perfectly /why/ C does it like it does
[15:06:59] <DarkUranium> it's like `mat[i,j]`
[15:07:07] <zid> what is mat[i,j]
[15:07:15] <DarkUranium> what is $M_{i,j}$ in mathematics?
[15:07:25] <zid> is that latex for subscript or something
[15:07:27] <DarkUranium> yes
[15:07:28] <DarkUranium> though yes, I could alternately have something like `mat[i][j]`
[15:07:42] <zid> okay then it means mat[i][j]
[15:08:00] <zid> so what does mat[i,:] mean, what mat[i] would mean in C?
[15:08:26] *** discopatrick <discopatrick!uid138124@gateway/web/irccloud.com/x-vtwmxvktvymmlqla> has quit IRC (Quit: Connection closed for inactivity)
[15:08:47] <DarkUranium> mat[i,:] as I wrote it doesn't have a C equivalent directly
[15:08:54] <DarkUranium> closest would be:
[15:08:57] <zid> Okay so what doe-
[15:09:02] <DarkUranium> to_vector(mat[i])
[15:09:15] <DarkUranium> mat[i,3] is a better example: mat[i][3] in C.
[15:09:30] <zid> where is candide when you need her
[15:09:43] <DarkUranium> why?
[15:09:47] <zid> ,cc float m[4][4]; printf("%zu", sizeof(m[2]));
[15:10:00] <DarkUranium> or mat[i,1..3] => vec2_from_ptr(mat[i]+1)
[15:10:13] <zid> that's obviously your slicing
[15:10:28] <zid> : just being a 'full slice'
[15:10:53] <DarkUranium> yes.
[15:11:00] <DarkUranium> and http://codepad.org/LganueQX
[15:11:01] <DarkUranium> it's 16.
[15:11:09] *** wuji2016 <wuji2016!~Thunderbi@112.28.183.191> has joined ##OpenGL
[15:11:30] <DarkUranium> I did specify : was a full slice, when I specified I'm using Python syntax for the example
[15:11:39] <DarkUranium> <DarkUranium> in Python syntax (just because slicing), something like: mat[2,:]
[15:11:42] <zid> I don't know python
[15:11:46] <DarkUranium> then you should've bloody asked.
[15:11:52] <zid> I did
[15:11:55] <DarkUranium> I even emphasized I used Python syntax for slicing
[15:12:04] <zid> so yes, C does precisely what you keep saying it doesn't
[15:12:07] <DarkUranium> no you didn't, you just told me you'd leave the : out without knowing what it was.
[15:12:14] <zid> and : can be omitted
[15:12:22] <zid> and keeps scalars and matrices using the same syntax
[15:12:26] <DarkUranium> arr[2] is not the same as arr[2,:]
[15:12:48] <zid> not for a 1D array, it would be for a 2D so far unless you come up with a countercase
[15:12:53] <zid> m[2] is a float[4]
[15:13:07] <DarkUranium> that's easy, its operator[] takes 2 arguments, not 1.
[15:13:13] <DarkUranium> (in C++ terms)
[15:13:21] <zid> I don't know C++ either fwiw :P
[15:13:27] <DarkUranium> not my problem.
[15:13:41] <zid> Should we stop? You seem to be getting annoyed
[15:13:49] <DarkUranium> you're the one complaining about syntax here, and yet seem to know absolutely nothing
[15:13:58] <zid> I am not complaining about anything
[15:14:03] <DarkUranium> bullshit
[15:14:07] <zid> I was having a conversation about syntax I thought
[15:14:10] <zid> I guess not
[15:14:54] <DarkUranium> https://gist.github.com/darkuranium/0513c716f92442628d04bdaa5313d2bd there you go
[15:15:12] <zid> yea we should definitely stop, you're obviously aggravated
[15:15:39] <zid> fun, the revisions link is 404
[15:15:51] <DarkUranium> I've just deleted it. Oh well.
[15:16:00] <zid> oh it was just a race
[15:16:15] <DarkUranium> Just a tip for you in the future: If you're gonna complain and lawyer and tell people what to do, it might help to know what you're reading, first of all. Not pretend you know what you're reading if you don't. I *DID* specify what syntax I was using.
[15:16:26] <DarkUranium> But whatever.
[15:16:27] <zid> I didn't intend to do any of those things
[15:16:38] <zid> that's why you're annoyed and why I am non-plussed
[15:16:58] <zid> I was having a conversation about what I'd like in a language, as far as I am concerned, and you were suggesting extra : that didn't seem necessary
[15:17:37] <zid> I demonstrated that it keeps consistency with 1D arrays and you bit my head off complaining I didn't know python and stuff, idk, we got some wires cross somewhere obviously
[15:18:48] *** snyp <snyp!~Snyp@103.56.236.247> has joined ##OpenGL
[15:24:28] *** wuji2016 <wuji2016!~Thunderbi@112.28.183.191> has quit IRC (Quit: wuji2016)
[15:28:44] <derhass> what the hell is going on here today?
[15:28:49] *** threenuc <threenuc!~threenuc@88.156.163.16> has quit IRC (Ping timeout: 248 seconds)
[15:29:09] <DarkUranium> derhass, shit's on fire, yo.
[15:29:40] <zid> Probably for the best, rebuild it faster, stronger, with more blackjack and hookers
[15:29:49] <DarkUranium> haha
[15:30:22] <derhass> zid: I'm not sure what you're intenting to do here
[15:31:19] <DarkUranium> derhass, can I get your opinion on float/vecN/matNxM vs float/floatN/floatMxN [note the reversal] issue?
[15:31:25] <DarkUranium> For naming types in a custom SL.
[15:31:43] <derhass> DarkUranium: my opinion is that I don't care either way
[15:31:49] <derhass> DarkUranium: it just has to be documented
[15:31:53] <DarkUranium> (also note: it'll have complex numbers [I could use e.g. complex vs cfloat] and quaternions [quat vs qfloat or something] builtin)
[15:31:55] <DarkUranium> fair enough.
[15:32:13] <derhass> it is all just conventions
[15:33:11] <derhass> not sure why you need another shading language in the first place. it's not the case that there are too few of them already
[15:34:04] <DarkUranium> derhass, I need a lightweight lang that can compile to GLSL, OpenCL, and straight CPU-side native
[15:34:15] <zid> There are lots of those, too
[15:34:19] <DarkUranium> zid, name one.
[15:34:35] <DarkUranium> (seriously, I've looked, and would love to know of an option)
[15:35:02] <zid> I swear I saw a few on github when I was looking around for stuff, I'll try find some
[15:35:07] <DarkUranium> derhass, oh and, I also need support for (emulated, of course --- it's a recompile otherwise) callbacks, of sorts. Sort of like that GL dynamic binding extension thingie (can't recall the name)
[15:35:14] <zid> maybe they're total shit though
[15:35:23] <DarkUranium> zid, might be. Mine is likely to be total shit, too! :P
[15:35:46] <DarkUranium> derhass, the callbacks will only change once at the start (or when changing some major setting), though, so the recompile is not a huge deal.
[15:35:57] <zid> nice, sounds great
[15:36:37] <DarkUranium> zid, I need it for an experimental procedural texture generator tool, FYI. So I have very, very specific requirements (e.g. I have no need for anything resembling a vertex shader)
[15:36:41] <zid> hmm finding lots of cross compilers for dx + glsl, but nothing that also does native
[15:36:47] <DarkUranium> yeah, exactly.
[15:36:49] <snyp> Isn't GLSL and OpenCL C two almost different languages?
[15:36:56] <snyp> (other than the syntax)
[15:36:58] <DarkUranium> snyp, I'll compile *TO* both.
[15:37:06] <DarkUranium> but yes.
[15:37:33] <DarkUranium> however, I'm sure any GLSL can be concievably compiled to OpenCL, with some adaptation (e.g. fragment output => output array)
[15:37:51] <DarkUranium> other way around is not necessarily possible, as GLSL has no pointers, no `byte4` and so on
[15:37:56] <zid> Are you just going to provide a little framework to interpolate and run main like the hw would with a shader, for your native vrsion?
[15:38:08] <DarkUranium> zid, yes, exactly!
[15:38:18] <DarkUranium> using a threadpool + (where possible) SSE.
[15:38:28] <DarkUranium> sort of like a CPU OpenCL lite.
[15:39:25] <zid> hehe there's a crazy header that defines enough templates and crap to get some stuff compiling with a C++ compiler, disgusting
[15:39:33] <DarkUranium> lol
[15:39:44] <DarkUranium> I saw, uh ... I think bgfx does that
[15:39:53] <DarkUranium> it basically uses a shit-ton of macros to have the same code work in both GLSL & HLSL
[15:40:08] <DarkUranium> you could probably "convince" it to compile as C (harder) or C++ (easier: operator overloading), too
[15:40:09] <zid> nice
[15:40:13] <zid> Are you going to use llvm?
[15:40:18] <DarkUranium> QBE, most likely. It's lighter.
[15:40:24] <zid> not heard of qbe
[15:40:25] <DarkUranium> Or even some JIT library. For these purposes, it might be enough.
[15:40:32] <DarkUranium> it's like a lighter, more stable LLVM.
[15:40:41] <zid> google and wikipedia haven't either
[15:40:53] <DarkUranium> you need to append "compiler": https://c9x.me/compile/
[15:41:02] <DarkUranium> (yes, the name is rather unfortunately difficult to search for)
[15:41:17] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[15:41:21] <zid> I think it's just something nobody has ever heard of
[15:41:36] <DarkUranium> well, it *is* a relatively new project.
[15:41:44] <zid> doesn't do vectorization
[15:41:48] <zid> says the webpage
[15:41:58] <zid> which I imagine would be ridiculously important for you
[15:41:59] <DarkUranium> sure, doesn't mean I can't extend it
[15:42:10] <DarkUranium> at any rate, JIT is legit an option, too
[15:42:21] <zid> I'd just write a compiler that compiled it to C
[15:42:44] <DarkUranium> but then I can't compile that "live", which is a goal (hence no LLVM: it's huge!)
[15:42:53] <DarkUranium> I mean, there's tinyc, I guess, but that won't do SSE either
[15:42:57] <DarkUranium> (SSE is actually not that critical for now)
[15:43:08] <DarkUranium> (for now, I'd be happy with just something that *works*, performance be damned)
[15:43:25] <zid> You're not going to include a built in copy of gcc? lazy! ;)
[15:43:49] <zid> But yea, this is a cool and hard problem if you're not prepared to have the user have big dev tools installed for you
[15:43:56] <zid> like binutils and/or llvm
[15:44:22] *** watered <watered!~dagger@gateway/tor-sasl/watered> has quit IRC (Remote host closed the connection)
[15:44:55] <DarkUranium> it's not *that* hard.
[15:45:05] <DarkUranium> worst case scenario, I compile it to Lua and let LuaJIT handle the rest :P
[15:45:12] <zid> haha oh dear
[15:45:27] <zid> It never even enters my mind to make things dealing with floats not stupid fast
[15:45:38] <DarkUranium> but really, a JIT isn't that hard to do
[15:45:43] <DarkUranium> a *fast* JIT, on the other hand ..
[15:45:54] <zid> yea, getting SMETHING working sounds like a long weekend
[15:46:22] <DarkUranium> not even that, depending on how many instructions one has to deal with here (assuming the source is some bytecode and not a direct SSA, for argument's sake)
[15:46:37] <zid> Less if you cheat, yea
[15:46:45] <DarkUranium> anyhow, the #1 reason I'm not using OpenCL directly is that I want it to work on GLES2.
[15:46:46] <zid> and don't have to write a lexer and parser
[15:46:57] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 248 seconds)
[15:47:10] <DarkUranium> Well, I'm talking about just the JIT, not the whole project. Whole project *is* more time, yes.
[15:47:37] <DarkUranium> I've considered using SPIR-V as the ... sort of the IR, for what it's worth.
[15:48:01] <DarkUranium> but that means having to track the developments in it, and bah.
[15:48:14] *** RajRajRaj <RajRajRaj!uid72176@gateway/web/irccloud.com/x-deujqbbgroqigztw> has quit IRC (Quit: Connection closed for inactivity)
[15:48:20] <zid> Using someone else's IR sounds like a nightmare indeed
[15:48:40] <zid> Hell, using other people's code in general is iffy, using some shifting target basically internal datastructre of someone's code? shoot me
[15:51:43] <DarkUranium> What, are you saying that dependencies are generally a bad thing, and that one should be careful before including them? Naaaaaah.
[15:51:50] <DarkUranium> Just ask Node devs, left-pad worked perfectly fine!
[15:51:51] *** snyp <snyp!~Snyp@103.56.236.247> has quit IRC (Quit: Leaving)
[15:52:06] <DarkUranium> (and yes, this is a dependency, even if it isn't a code dependency)
[15:52:25] <zid> https://d24ju8re1w4x9e.cloudfront.net/original/1X/3d732f30af77e84678e9ede7718b8e6c160ea690.png
[15:52:56] <zid> javascript people just like to dig
[15:53:27] <DarkUranium> lol
[15:53:33] <DarkUranium> not just JS, though
[15:53:39] <DarkUranium> I know a guy who legit thinks that glib is not a dependency.
[15:53:44] <DarkUranium> (you know, GObject & related stuff)
[15:53:54] <DarkUranium> (as used in GTK and so on)
[15:54:12] <zid> glib is actually awful, too
[15:54:26] <zid> I could understand saying "libc doesn't count" or whatever and maybe even agree, but glib!?
[15:56:03] <DarkUranium> well, you literally can't avoid libc
[15:56:18] <DarkUranium> at least for a hosted environment
[15:56:25] <DarkUranium> I mean, you can (use syscalls directly), but y'know
[15:56:28] <zid> I write my own libc a lot because I am insane
[15:56:31] <DarkUranium> lol
[15:56:58] <zid> "a big libc with widechar support etc? nah, I'll just whip up memcpy, strlen etc in 10 mins"
[15:57:06] *** spear2 <spear2!~spear2@71-95-117-135.dhcp.mdfd.or.charter.com> has quit IRC (Remote host closed the connection)
[15:57:26] <zid> I do more embedded stuff than is healthy though
[15:57:28] *** sleepyspider <sleepyspider!~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net> has joined ##OpenGL
[16:00:21] <DarkUranium> you might like the ESP8266, it stores all this in ROM
[16:00:24] <DarkUranium> no, not EEPROM, ROM.
[16:00:27] <DarkUranium> (memcpy and friends)
[16:01:09] <zid> lots of things have bioses
[16:01:26] <zid> GBA has sqrt() in its firmware/bios/rom
[16:02:07] <DarkUranium> yup
[16:02:38] <DarkUranium> esp8266 also has a bunch of crypto and such (it's a wlan-enabled IC). People are still discovering new ROM functionality.
[16:03:00] <zid> cute
[16:05:13] <DarkUranium> oh neat, QBE doesn't even need its input in SSA form anymore.
[16:05:21] <DarkUranium> so I can do direct source-to-source translation (into its IL)
[16:05:41] <zid> ah nice
[16:05:59] *** ekn2 <ekn2!~ekn2@p1180010-ipbf1221akatuka.ibaraki.ocn.ne.jp> has quit IRC (Ping timeout: 276 seconds)
[16:06:07] <DarkUranium> it's apparently only 8KLOC, which means I should be able to easily hack SSE support into it, should I want to.
[16:06:08] <zid> can you just give it a bison file? :)
[16:08:27] *** wuji2016 <wuji2016!~Thunderbi@112.28.183.191> has joined ##OpenGL
[16:09:53] <nogravityrush> hi should i tag or create id for the faces each... of a 3d object?
[16:10:38] <zid> for what purpose?
[16:11:40] <DarkUranium> zid, I'll need to do *some* semantic analysis, because I want to e.g. remove the need to forward-declare functions. So this must work: `int foo() { return bar(); } int bar() { ... }`
[16:12:32] <zid> oh I always declare things in reverse order, I prefer the code to be structured that way, main at the bottom
[16:12:45] <DarkUranium> so do I.
[16:12:48] <zid> gotta optimize that hamming distance of moving the scrollbar
[16:12:50] <DarkUranium> haha
[16:13:06] <DarkUranium> but some people prefer the opposite, and it's fairly easy to do this, so I might as well.
[16:13:28] <DarkUranium> generally speaking, there's mutual recursion, too (albeit not in GLSL)
[16:13:34] <zid> some people will be first against the wall when the revolution comes
[16:13:36] <DarkUranium> zid, also new types (though those are fairly easily convertible as I go), e.g. quaternions & complex numbers.
[16:25:51] *** slime <slime!~slime73@blk-215-81-93.eastlink.ca> has joined ##OpenGL
[16:29:38] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[16:32:45] <zid> Mulling over shadow maps in my head, how do you determine how to 'frame' the 'render from the light's POV' to only include things that the camera's perspective might actually see?
[16:35:17] *** ZeroWalker <ZeroWalker!~Zerowalke@78-67-154-24-no268.tbcn.telia.com> has quit IRC (Quit: Leaving)
[16:36:55] *** threenuc <threenuc!~threenuc@88.156.163.16> has joined ##OpenGL
[16:36:59] *** ciaala <ciaala!~crypt@182.192.6.85.dynamic.wline.res.cust.swisscom.ch> has joined ##OpenGL
[16:40:13] *** davr0s <davr0s!~textual@host81-155-66-141.range81-155.btcentralplus.com> has quit IRC (Ping timeout: 240 seconds)
[16:41:18] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[16:41:30] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has joined ##OpenGL
[16:46:53] *** reddv <reddv!~dredev@r61-27-ka.inext.cz> has quit IRC ()
[16:47:13] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 240 seconds)
[16:47:17] *** Rutix <Rutix!~rutix@4daece29.ftth.telfortglasvezel.nl> has joined ##OpenGL
[16:47:17] *** Rutix <Rutix!~rutix@4daece29.ftth.telfortglasvezel.nl> has quit IRC (Changing host)
[16:47:17] *** Rutix <Rutix!~rutix@april-fools/2013/runnerup/Rutix> has joined ##OpenGL
[16:52:39] *** SwiftMatt <SwiftMatt!~Objective@2601:282:4300:3e:f57e:a12b:83c0:f5c1> has joined ##OpenGL
[16:54:36] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[16:56:59] *** kasper^ <kasper^!~safaf@82.137.9.151> has quit IRC (Ping timeout: 260 seconds)
[17:06:10] *** Quetzal2 <Quetzal2!~Quetzal2@unaffiliated/quetzal2> has quit IRC (Ping timeout: 240 seconds)
[17:06:54] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[17:08:13] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has quit IRC (Read error: Connection reset by peer)
[17:08:36] *** Quetzal2 <Quetzal2!~Quetzal2@unaffiliated/quetzal2> has joined ##OpenGL
[17:10:15] *** davr0s <davr0s!~textual@host86-152-129-209.range86-152.btcentralplus.com> has joined ##OpenGL
[17:10:31] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has joined ##OpenGL
[17:27:29] *** Rutix <Rutix!~rutix@april-fools/2013/runnerup/Rutix> has quit IRC ()
[17:34:12] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has joined ##OpenGL
[17:36:53] *** paul424 <paul424!~chatzilla@ip-31-0-125-52.multi.internet.cyfrowypolsat.pl> has joined ##OpenGL
[17:37:45] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has quit IRC (Remote host closed the connection)
[17:38:23] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has joined ##OpenGL
[17:41:16] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[17:41:50] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has quit IRC (Remote host closed the connection)
[17:42:22] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has joined ##OpenGL
[17:45:08] *** kasper^ <kasper^!~safaf@82.137.9.151> has joined ##OpenGL
[17:45:35] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has quit IRC (Remote host closed the connection)
[17:46:57] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 240 seconds)
[17:48:33] *** Waynes <Waynes!~Waynes@23.94.61.168> has quit IRC (Ping timeout: 248 seconds)
[17:49:55] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has joined ##OpenGL
[17:50:26] *** Quetzal2 <Quetzal2!~Quetzal2@unaffiliated/quetzal2> has quit IRC (Read error: Connection reset by peer)
[17:53:21] *** Quetzal2 <Quetzal2!~Quetzal2@unaffiliated/quetzal2> has joined ##OpenGL
[17:55:47] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[17:59:05] *** jeannekamikaze <jeannekamikaze!~jeanne@c-73-223-201-25.hsd1.ca.comcast.net> has joined ##OpenGL
[17:59:10] *** ngm <ngm!~nishanth@183.82.187.154> has quit IRC (Quit: Leaving)
[17:59:39] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has quit IRC (Read error: Connection reset by peer)
[18:00:06] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has joined ##OpenGL
[18:00:13] *** raynold <raynold!uid201163@gateway/web/irccloud.com/x-ytoakdwkgqdaduqv> has joined ##OpenGL
[18:01:54] *** MrFlibble <MrFlibble!MrFlibble2@2.220.67.202> has joined ##OpenGL
[18:03:32] *** wuji2016 <wuji2016!~Thunderbi@112.28.183.191> has quit IRC (Ping timeout: 245 seconds)
[18:11:51] *** snyp <snyp!~Snyp@103.56.236.26> has joined ##OpenGL
[18:19:40] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[18:23:25] *** neure <neure!~tsuoranta@62.209.167.43> has joined ##OpenGL
[18:23:45] *** xissburg <xissburg!~xissburg@unaffiliated/xissburg> has joined ##OpenGL
[18:29:06] *** xissburg <xissburg!~xissburg@unaffiliated/xissburg> has quit IRC (Remote host closed the connection)
[18:33:53] *** Guest41109 <Guest41109!~chat@p54B2F157.dip0.t-ipconnect.de> has quit IRC (Ping timeout: 240 seconds)
[18:35:01] *** upgrdman <upgrdman!~upgrdman@blender/artist/upgrdman> has joined ##OpenGL
[18:35:01] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[18:35:58] *** xissburg <xissburg!~xissburg@unaffiliated/xissburg> has joined ##OpenGL
[18:35:59] *** chat <chat!~chat@p54B2F157.dip0.t-ipconnect.de> has joined ##OpenGL
[18:36:24] *** chat is now known as Guest32622
[18:41:20] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[18:42:07] *** Involuntary <Involuntary!~jeanne@thunderhill.nvidia.com> has joined ##OpenGL
[18:42:16] *** geo5 <geo5!~geo5@2601:601:1800:53a4:d942:4162:13a:aa25> has joined ##OpenGL
[18:45:12] *** jeannekamikaze <jeannekamikaze!~jeanne@c-73-223-201-25.hsd1.ca.comcast.net> has quit IRC (Ping timeout: 245 seconds)
[18:46:53] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 240 seconds)
[18:49:06] *** rizzo <rizzo!~RizzoTheR@p54B6B698.dip0.t-ipconnect.de> has joined ##OpenGL
[18:50:56] *** kasumi-owari <kasumi-owari!~kasumi-ow@ftth-213-233-237-007.solcon.nl> has quit IRC (Ping timeout: 248 seconds)
[18:51:01] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[18:54:37] *** kasumi-owari <kasumi-owari!~kasumi-ow@ftth-213-233-237-007.solcon.nl> has joined ##OpenGL
[18:59:47] *** neurre <neurre!~tsuoranta@mobile-access-bceeee-110.dhcp.inet.fi> has joined ##OpenGL
[18:59:47] *** neure <neure!~tsuoranta@62.209.167.43> has quit IRC (Read error: Connection reset by peer)
[19:00:05] *** SwiftMatt <SwiftMatt!~Objective@2601:282:4300:3e:f57e:a12b:83c0:f5c1> has quit IRC (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
[19:02:15] *** Waynes <Waynes!~Waynes@23.94.61.168> has joined ##OpenGL
[19:03:32] <Dariusz_> ok almost finished watchig that math serries 15 vids
[19:03:34] <Dariusz_> my brain huts
[19:03:41] <Dariusz_> but I get some of the ideas he explains
[19:04:02] <Dariusz_> is there any resource on the net where you can test stuff and get a result? Like online textbook with question/answers?
[19:04:13] <zid> yes, they're called textbooks
[19:04:27] <Dariusz_> what one should I look for?
[19:04:28] <zid> or googling for 'examples' or 'worked examples' or 'quiz'
[19:05:03] <Dariusz_> thanks
[19:07:14] *** neurrre <neurrre!~tsuoranta@mobile-access-bceeee-110.dhcp.inet.fi> has joined ##OpenGL
[19:07:27] *** DonVlad <DonVlad!~Murii@79.113.205.114> has quit IRC (Quit: WeeChat 1.4)
[19:07:34] *** neurre <neurre!~tsuoranta@mobile-access-bceeee-110.dhcp.inet.fi> has quit IRC (Read error: Connection reset by peer)
[19:07:49] *** Involuntary <Involuntary!~jeanne@thunderhill.nvidia.com> has quit IRC (Read error: Connection reset by peer)
[19:08:11] *** Involuntary <Involuntary!~jeanne@c-73-223-201-25.hsd1.ca.comcast.net> has joined ##OpenGL
[19:08:27] *** paul424 <paul424!~chatzilla@ip-31-0-125-52.multi.internet.cyfrowypolsat.pl> has quit IRC (Quit: ChatZilla 0.9.93 [Firefox 52.6.0/20180118122319])
[19:14:23] *** Guest32622 <Guest32622!~chat@p54B2F157.dip0.t-ipconnect.de> has quit IRC (Ping timeout: 248 seconds)
[19:15:06] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has quit IRC (Read error: Connection reset by peer)
[19:15:33] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has joined ##OpenGL
[19:18:42] <Dariusz_> when you have
[19:19:07] *** chat <chat!~chat@p54B2F157.dip0.t-ipconnect.de> has joined ##OpenGL
[19:19:14] <Dariusz_> glm::mat4(1.f) does that make a a matrix of 4x4, with identiy set to 1, iea 1,0,0,0 - 0,1,0,0 - 0,0,1,1 - 0,0,0,1 ?
[19:19:27] <Dariusz_> 0,0,1,0(the one before last)*
[19:19:30] *** chat is now known as Guest16356
[19:21:46] <zid> why not look at the documentation for glm::mar4
[19:21:56] <zid> instead of asking someone to do it for you
[19:22:34] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[19:24:21] <Dariusz_> it says this 4 columns of 4 components matrix of floating-point numbers.
[19:24:21] <Dariusz_>
[19:24:28] <Dariusz_> I don't see what the 1.0f stands for :- (
[19:26:58] <DarkUranium> well, check the constructors
[19:27:00] <DarkUranium> or online docs.
[19:33:18] <Dariusz_> this file ? https://glm.g-truc.net/0.9.2/api/a00124_source.html?
[19:33:43] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has quit IRC (Remote host closed the connection)
[19:35:19] *** RonaldsMazitis <RonaldsMazitis!~quassel@78.84.29.65> has joined ##OpenGL
[19:38:03] <DarkUranium> no, the concrete one you're using
[19:39:25] <Dariusz_> I don't understand, this is where I get directed when I click on mat4 in docs
[19:41:20] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[19:41:24] <DarkUranium> odd
[19:42:12] <DarkUranium> zid, to be fair, glm's documentation is pretty terrible.
[19:42:21] <DarkUranium> Dariusz_, check GLSL documentation, then. glm mirrors GLSL.
[19:42:29] <DarkUranium> but yes, mat4(x) puts x in the diagonal.
[19:42:48] <Dariusz_> thanks
[19:42:56] <Dariusz_> so glsl mat4 I take as glm uses the same names?
[19:43:03] <DarkUranium> they're mostly the same, yes
[19:43:20] <DarkUranium> glm adds more stuff and such, and it has compile-time options to have different base vectors and so on
[19:43:45] <zid> It's template hell, fun
[19:43:49] <zid> https://github.com/g-truc/glm/blob/master/glm/detail/type_mat4x4.hpp
[19:43:57] *** Nightwing52 <Nightwing52!~Thunderbi@47-219-227-233.lfkncmta01.res.dyn.suddenlink.net> has joined ##OpenGL
[19:44:09] <Dariusz_> its thesame as docs I send above
[19:44:22] <Dariusz_> or maybe humh
[19:44:24] *** Xophosaurus <Xophosaurus!~yay@dhcp-108-168-68-218.cable.user.start.ca> has joined ##OpenGL
[19:45:40] <DarkUranium> I believe y'all are looking for this https://github.com/g-truc/glm/blob/master/glm/detail/type_mat4x4.inl
[19:46:22] <DarkUranium> zid, I think there's a point where one should abandon templates, and just make an util to generate the code.
[19:46:29] <DarkUranium> ... glm is proof.
[19:46:45] <DarkUranium> I don't use glm though, I always write custom. glm is too much of a mess, and it keeps triggering my compiler's warnings
[19:47:27] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 248 seconds)
[19:48:19] *** iderik <iderik!~idk@h-0-97.A147.priv.bahnhof.se> has quit IRC (Quit: iderik)
[19:53:06] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[19:56:24] *** snyp <snyp!~Snyp@103.56.236.26> has quit IRC (Quit: Leaving)
[19:58:02] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Ping timeout: 276 seconds)
[20:06:09] *** stefkos <stefkos!~Pawel@82.177.144.226> has quit IRC (Ping timeout: 248 seconds)
[20:06:33] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[20:18:03] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[20:29:25] *** ville <ville!~ville@87-95-30-76.bb.dnainternet.fi> has quit IRC (Quit:)
[20:29:36] *** DarkShin <DarkShin!~DarkShin@152.250.130.114> has joined ##OpenGL
[20:35:48] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has joined ##OpenGL
[20:36:08] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has quit IRC (Remote host closed the connection)
[20:36:44] *** neurrre <neurrre!~tsuoranta@mobile-access-bceeee-110.dhcp.inet.fi> has quit IRC (Quit: Leaving)
[20:38:29] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has joined ##OpenGL
[20:39:10] *** panda81 <panda81!32009561@gateway/web/cgi-irc/kiwiirc.com/ip.50.0.149.97> has joined ##OpenGL
[20:41:18] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[20:41:21] *** Kingsquee <Kingsquee!~kingsquee@d108-180-237-219.bchsia.telus.net> has joined ##OpenGL
[20:45:38] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has quit IRC (Remote host closed the connection)
[20:48:34] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[20:48:47] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 252 seconds)
[20:49:59] *** irrenhaus3 <irrenhaus3!~xenon@ip-37-201-7-18.hsi13.unitymediagroup.de> has joined ##OpenGL
[20:51:44] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has joined ##OpenGL
[20:52:53] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Ping timeout: 240 seconds)
[20:54:21] *** Involuntary <Involuntary!~jeanne@c-73-223-201-25.hsd1.ca.comcast.net> has quit IRC (Quit: Leaving)
[20:56:02] *** suppahsrv <suppahsrv!~mopmop@host66-161-dynamic.59-82-r.retail.telecomitalia.it> has quit IRC (Read error: Connection reset by peer)
[20:56:21] *** suppahsrv <suppahsrv!~mopmop@host66-161-dynamic.59-82-r.retail.telecomitalia.it> has joined ##OpenGL
[21:01:06] <Dariusz_> if I have a "function"
[21:01:07] *** snyp <snyp!~Snyp@103.56.236.168> has joined ##OpenGL
[21:01:12] <Dariusz_> matrix
[21:01:28] <Dariusz_> W, X and Y, is that W*X + Y ?
[21:01:57] <Dariusz_> http://www.maths.usyd.edu.au/u/UG/JM/MATH1002/Quizzes/quiz7.html question 9, I dont know if the "," and "and" are a operators
[21:03:56] <Dariusz_> from what i can see W2x3 and X3x2 can be multipled so I end up with 2x2 matrix there, and since its 2x2 I can add it to Y, so its WX+Y ?
[21:04:19] <Dariusz_> and apparently thats wrong
[21:04:20] <Dariusz_> why
[21:04:32] <Dariusz_> I take the "," means something :/
[21:05:35] <derhass> Dariusz_: well, that is just a sentence
[21:05:46] <Dariusz_> I dont understaqnd that damn question
[21:05:52] <derhass> you have just the three matrices W, X and Y
[21:06:02] <Dariusz_> apparently its A B and D thats correct
[21:06:37] <Dariusz_> A is W*X+Y, B is X*Y, D is Y*W, I have no idea what it all means :[
[21:06:45] *** DMJC <DMJC!~DMJC@123-243-115-107.static.tpgi.com.au> has quit IRC (Ping timeout: 252 seconds)
[21:06:57] <derhass> well
[21:07:04] <derhass> you need to know matrix multiplication
[21:07:08] *** stefkos <stefkos!~Pawel@82.177.144.226> has joined ##OpenGL
[21:07:32] <Dariusz_> yea I know, u have to have the same columnXRow matrices, then u multiply and u get result
[21:07:48] <derhass> well
[21:07:54] <Dariusz_> and i got 2x2 matrix, which I can add to Y
[21:07:58] <Dariusz_> but what are they saying
[21:08:07] <derhass> first, you should check if the matrix dimensions are even compatible for a multiplication
[21:08:21] <Dariusz_> XY is not a 3x2 matrix, you cant add 3x2 and 2x2 matrices
[21:08:31] <Dariusz_> yeah WX can be multiplied
[21:08:34] <Dariusz_> result of that can be added to Y
[21:08:38] <Dariusz_> so I though its WX+Y
[21:08:40] <Dariusz_> (A)
[21:08:48] <Dariusz_> but they say that XY is also correct
[21:09:00] <Dariusz_> which make no sense because thats not 2x2 matrix -from addition
[21:09:07] <derhass> Dariusz_: XY _is_ a 3x2 matrix
[21:09:31] <Dariusz_> yes
[21:09:48] <Dariusz_> so is the "and" a multiplier?
[21:09:52] <Dariusz_> and = * ?
[21:10:03] <derhass> Dariusz_: no
[21:10:08] <derhass> XY is a multiplication
[21:10:18] <Dariusz_> so I cant multiply X by Y
[21:10:22] <derhass> you can
[21:10:26] <Dariusz_> ah
[21:10:27] <Dariusz_> yes
[21:10:29] <Dariusz_> no sorry I can
[21:10:30] <Dariusz_> I cant add them
[21:10:39] <Dariusz_> so were they asking
[21:10:45] <Dariusz_> for all possible actions on these 3 matrices?
[21:10:48] <derhass> not sure if you can. standard math copnventions can't
[21:11:06] <derhass> some of the students often disagree and invent new math during the exams
[21:11:20] <Dariusz_> (lol hahahahah invent new math :D )
[21:11:22] <Dariusz_> ok back to topic
[21:11:24] <Dariusz_> so in this question
[21:11:34] <Dariusz_> were they asking us for all possible matrix - options ?
[21:11:35] <Dariusz_> like
[21:11:46] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has quit IRC (Read error: Connection reset by peer)
[21:11:47] <Dariusz_> WX - because we can multiply
[21:11:48] <derhass> Dariusz_: "Which of the following statements are correct?"
[21:11:56] <derhass> it is not all possible operations.
[21:12:00] <Dariusz_> WX+Y, because we can multiply WX which give 2x2 and then add it to Y which is 2x2 ?
[21:12:11] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has joined ##OpenGL
[21:12:34] <derhass> well, you also need to check the numbers
[21:13:03] <derhass> if the dimnensions don't match, you can easily rule out that one
[21:13:15] <derhass> if they do match, you must calcualte it and see if it is correct or not
[21:13:33] *** tambre <tambre!~tambre@3c5b-0f05-f6db-2826-ab80-8a0a-07d0-2001.dyn.estpak.ee> has quit IRC (Ping timeout: 240 seconds)
[21:13:41] <Dariusz_> and then its YW because Y is 2 column and W is 2 row
[21:13:54] <Dariusz_> I don't think its about calculating it
[21:14:00] <derhass> well
[21:14:04] <Dariusz_> more like confirming that you can do given multiplications/additions
[21:14:05] <Dariusz_> like
[21:14:05] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has quit IRC (Remote host closed the connection)
[21:14:09] <derhass> the question is "Which of the following statements are correct?"
[21:14:39] <Dariusz_> hmmm
[21:14:50] <Dariusz_> so I had to calculate all these statements?
[21:14:52] <derhass> now it might be the case that for all options where the dimensions match, the stated result is also correct, but that is nothing you could rely on, given that assignment
[21:14:59] <derhass> Dariusz_: by doing the math
[21:15:01] <Dariusz_> I though they were just checking if I know the rule of addition/multiplication
[21:15:17] <derhass> no idea what they are trying to check
[21:15:27] <Dariusz_> hmmm
[21:15:29] <Dariusz_> frustrating as hell
[21:15:37] <derhass> Dariusz_: what is frustrating you?
[21:15:44] <derhass> Dariusz_: are you native english speaker>
[21:15:51] <Dariusz_> its like they build up the questions in most difficult way to understand to push away people from learning :- (
[21:16:15] <Dariusz_> nope, well kinda. I been in UK for past 10 years, got brit citizenship so I kinda am "natife-isch"
[21:16:32] <Dariusz_> as I had to pass the language exams/etc
[21:16:45] <derhass> so understanding the question shouldn't be so hard
[21:17:01] <Dariusz_> my brain sux :- (
[21:17:08] <derhass> I mean, what's unclear about "Which of the following statements are correct? (Zero or more options can be correct)"
[21:17:27] <derhass> I'd say that is a very precise, clear and short task assignment
[21:18:05] <Dariusz_> I though that the W,X and Y - the ("," "and") meant some operators
[21:18:17] <Dariusz_> because people keep writing in math WX but aint nobody type W*X ! ;[
[21:18:31] <Dariusz_> so I thogh its another type of operator and I was meant to do something with it
[21:18:38] <derhass> the "," means just comma, as in english grammer, and the "and" just meant "and", as in the egnlish language
[21:18:39] <Dariusz_> but then the answers had WX+Y so I got lost
[21:18:56] *** slvn_ <slvn_!~slvn_@c2s31-1-78-245-90-111.fbx.proxad.net> has quit IRC (Quit: Leaving)
[21:19:11] <Dariusz_> whhh, ok. Lesson learned. Ignore ", and" for future
[21:19:13] <Dariusz_> thanks!
[21:19:16] <derhass> "a,b,c and d" is a standard enumeration in english
[21:19:33] <Dariusz_> so they have no mathematical meaning
[21:20:13] <derhass> no
[21:20:22] <Dariusz_> its just one of those things, in math equations there are so many "symbols" that I don't know whats what. I keep looking at this but even then I'm not sure if it has it all http://www.tmrfindia.org/sutra/v2i17.pdf
[21:20:30] *** snyp_ <snyp_!~Snyp@103.56.236.64> has joined ##OpenGL
[21:20:52] <derhass> Dariusz_: that's far from complete
[21:21:05] <Dariusz_> oh dear ;- (
[21:21:06] <derhass> symbols are usually defined in _context_
[21:21:07] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[21:22:17] <DarkUranium> ^
[21:22:19] <derhass> Dariusz_: you shouldn't worry about that stuff
[21:22:22] <Dariusz_> uhh yeah, well. No idea. when I read some papers half the time they show symbol but don't explain what is what. Because if its physics they expect you to know their special cases for their symbols and I'm just "wtf do I google it, physics symbols dictionareY?!"
[21:22:39] <DarkUranium> a '~' means something completely different in C vs Lua vs English language
[21:22:40] <Dariusz_> frustrating
[21:22:45] <Dariusz_> yeh
[21:22:49] <Dariusz_> oh dear :- (
[21:22:50] <derhass> well, papers aren't for the general audience
[21:23:35] *** snyp <snyp!~Snyp@103.56.236.168> has quit IRC (Ping timeout: 240 seconds)
[21:23:42] <Dariusz_> I wish they could write the equation in more "standardzed" form so that i don't have to do PHD in different studies to understand the concept/idea :/ then again last paper I read was 5 months ago so maybe now I'll understand them a little better
[21:23:43] *** snyp__ <snyp__!~Snyp@103.56.236.247> has joined ##OpenGL
[21:23:59] <DarkUranium> there is a standardized form
[21:24:02] <DarkUranium> it's called mathematics
[21:24:09] <DarkUranium> it has a language.
[21:24:09] *** threenuc <threenuc!~threenuc@88.156.163.16> has quit IRC (Read error: Connection reset by peer)
[21:24:11] <derhass> yeah
[21:24:15] <derhass> and a lot of conventions
[21:24:28] <DarkUranium> derhass, well, it's more standardized than English, at any rate.
[21:24:29] <derhass> which are often used and not explicitely stated
[21:24:34] *** threenuc <threenuc!~threenuc@88.156.163.16> has joined ##OpenGL
[21:24:36] <derhass> DarkUranium: certainly
[21:26:00] *** immibis <immibis!~chatzilla@222-155-160-32.jetstream.xtra.co.nz> has joined ##OpenGL
[21:27:06] *** snyp_ <snyp_!~Snyp@103.56.236.64> has quit IRC (Ping timeout: 256 seconds)
[21:28:09] *** snyp <snyp!~Snyp@103.56.236.109> has joined ##OpenGL
[21:31:13] *** snyp__ <snyp__!~Snyp@103.56.236.247> has quit IRC (Ping timeout: 240 seconds)
[21:31:38] <Dariusz_> http://www.maths.usyd.edu.au/u/UG/JM/MATH1002/Quizzes/quiz7.html
[21:31:41] <Dariusz_> at answer C
[21:31:45] <Dariusz_> they say product is not defined
[21:32:16] <Dariusz_> (YW)2 = , Y*W produces 3x3 matrix, and then I 3x3*3x3 = xx, why do they say product is not defined?
[21:32:41] <Dariusz_> or is that one of incorrect answers ?
[21:32:47] <Dariusz_> because I dont see a reason why I could not do that equation
[21:33:00] <derhass> Dariusz_: which question?
[21:33:04] <Dariusz_> last
[21:33:06] <Dariusz_> 10
[21:33:15] <Dariusz_> huh sorry, I though it send link to question ;c
[21:34:28] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has joined ##OpenGL
[21:34:36] <derhass> the question is the same as before "Which of the following statements are true ?"
[21:34:43] <Dariusz_> yea
[21:34:47] <derhass> so each of the statements a) to f) can be true or false
[21:34:52] <Dariusz_> but I dont udnerstand C sentence
[21:35:04] <Dariusz_> the product (yw)2 is not defined
[21:35:13] <derhass> "c) The product (YW)^2 is not defined."
[21:35:16] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[21:35:25] <derhass> is this a true or a false statement?
[21:35:50] <Dariusz_> it can be defined I suppose? the matrices can be multiplied and 62
[21:35:52] <Dariusz_> ^2
[21:36:17] <derhass> so then that statement is not true
[21:36:26] <Dariusz_> so c) is incorrect and d) is correct
[21:36:29] <Dariusz_> yep
[21:37:08] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has quit IRC (Remote host closed the connection)
[21:37:11] <derhass> you're sure about d? ?
[21:37:37] <Dariusz_> I need to do the math, but I remember reading somewhere that it is possible, maybe I'm mixing it up with something else tho
[21:37:50] <Dariusz_> Im doing a) now will get to D in a bit lol
[21:38:03] *** DarkShin <DarkShin!~DarkShin@152.250.130.114> has quit IRC (Read error: Connection reset by peer)
[21:38:11] <derhass> (Y*W)^2 = ( Y*W ) * (Y*W) = Y*W*Y*W
[21:38:14] <DarkUranium> Dariusz_, are matrices commutative?
[21:38:20] <derhass> that's not Y*Y*W*W
[21:39:00] <derhass> interestingly, now you are at a point wich is highly relevant for computer graphics
[21:39:05] <Dariusz_> are matrices commutative? - I remember hearing that phrase today when I was watching that 3b1b vids but I don't remember, need to rewatch
[21:39:14] <DarkUranium> no
[21:39:17] <DarkUranium> you don't need to rewatch
[21:39:25] <DarkUranium> you need to learn what "commutative" means!
[21:39:29] <Dariusz_> then I need to google what commutitative means
[21:39:43] <Dariusz_> o
[21:39:44] <derhass> DarkUranium: you probably mean "matrix multiplication"
[21:39:45] <Dariusz_> no they are not
[21:39:50] <Dariusz_> the order of operations on matrices matter
[21:39:50] <DarkUranium> derhass, err, yes, sorry.
[21:40:02] <DarkUranium> don't just try and remember "$X has properties $a, $b, and $c". Rather, remember what property $a *means*
[21:40:08] <DarkUranium> then you'll understand what they mean
[21:40:12] <Dariusz_> mmm
[21:40:20] <DarkUranium> Dariusz_, derhass is right, multiplication (which is relevant here) is not commutative
[21:40:22] <DarkUranium> addition is.
[21:40:44] <DarkUranium> Dariusz_, so, if it's not commutative, does (YW)^2 = Y^2 W^2?
[21:40:50] <DarkUranium> you can expand them out
[21:41:09] *** DrBenway <DrBenway!~DrBenway@modemcable080.164-57-74.mc.videotron.ca> has joined ##OpenGL
[21:41:18] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[21:41:20] <Dariusz_> oh did not know addition is, so I can add A+B and B+A = 1 ?(I take 1 is a way of saying true? in maths?)
[21:41:35] <DarkUranium> '1' can mean many things, it can also mean true, yes.
[21:41:45] <derhass> well, even though multiplication is not commutative that statement can be true, depending on the actual shape and values of the matrices involved
[21:42:03] <DarkUranium> Dariusz_, well, how do you add matrices?
[21:42:17] *** snyp <snyp!~Snyp@103.56.236.109> has quit IRC (Quit: Leaving)
[21:42:24] <derhass> Dariusz_: B+A=1 is only a true statement in the case of A and B being scalars
[21:42:37] <derhass> among other things
[21:42:40] <Dariusz_> you add each row/column in matrix A with the same in matrix B
[21:42:55] <derhass> Dariusz_: 1 isn't a matrix
[21:43:03] <derhass> at least not in a non-trivial sense
[21:43:10] <DarkUranium> Dariusz_, yes, so elementwise. Is there anything that would prevent that from being commutative?
[21:43:14] <derhass> equation comes fromequality
[21:43:24] <Dariusz_> nope you can add it in any order
[21:43:28] <derhass> both sides of the equation must be, well, equal, for it to be correct
[21:44:31] <DarkUranium> Dariusz_, exactly.
[21:44:34] <DarkUranium> and what derhass said.
[21:44:53] <Dariusz_> hmmm
[21:45:29] <Dariusz_> you lost me with scalar, but I'll get there
[21:45:46] <Dariusz_> derhass^
[21:46:01] <DarkUranium> Dariusz_, a scalar is simply a ... well, a number. Not a vector, not a matrix.
[21:46:08] <DarkUranium> `1.7` is a scalar
[21:46:17] <DarkUranium> `(3.2, 1.2)` is not (it is a vector)
[21:46:29] <derhass> DarkUranium: or a tuple
[21:46:37] <DarkUranium> derhass, sure.
[21:46:50] <derhass> or something completely different. without context...
[21:46:53] <Dariusz_> scalar = float?
[21:46:58] <derhass> no
[21:47:00] <DarkUranium> Dariusz_, there is no "float" in mathematics.
[21:47:28] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 248 seconds)
[21:47:38] <Dariusz_> 1.7 is not float?
[21:47:47] <DarkUranium> Not in mathematics, no. Floats do not exist.
[21:47:53] <Dariusz_> oh dear
[21:48:01] <derhass> well, you can define floats in a mathematical way
[21:48:13] <DarkUranium> derhass, sure, but mathematicians don't tend to operate in terms of them
[21:48:19] <DarkUranium> you can define *anything* in a mathematical way
[21:48:23] <TheFlash> Real is the word i think you're after.
[21:48:35] <derhass> DarkUranium: not anything. remember goedel!
[21:48:58] <DarkUranium> derhass, right.
[21:49:03] <DarkUranium> Dariusz_, `1.7` is many things. It is a real. It is also a complex number. It is a dual number.
[21:49:06] *** DarkShin <DarkShin!~DarkShin@191.205.126.67> has joined ##OpenGL
[21:49:12] <derhass> a scalar doesn't have to be a real number
[21:49:19] <DarkUranium> ^
[21:49:20] <derhass> a scalar is some one-dimension property
[21:49:26] <TheFlash> No, but that's what he was thinking.
[21:49:28] <derhass> *dimensional
[21:49:33] <derhass> TheFlash: yes
[21:49:35] <DarkUranium> derhass, wouldn't that be zero-dimension? Or am I confused?
[21:49:35] <TheFlash> I guess
[21:49:48] <DarkUranium> oh right, it is one
[21:50:10] <Dariusz_> o.o
[21:50:10] * derhass throws a points at DarkUranium
[21:50:34] <derhass> although I'm not sure what the _mathematical_ definition for "scalar" really is
[21:51:07] <DarkUranium> Dariusz_, I don't mean to sound patronizing, but didn't you have all this in school?
[21:51:13] <derhass> "A scalar is an element of a field which is used to define a vector space. A quantity described by multiple scalars, such as having both direction and magnitude, is called a vector.", as wikipedia puts it
[21:51:58] <DarkUranium> Dariusz_, I mean, different sets of numbers in mathematics.
[21:54:32] <Dariusz_> DarkUranium ofc I did, but I did games/art/design/photogrtaphy/art/animation. I never though after 15 years of work in art industry I'm gonna sit and decide to write my own 3d software for my works cases :/
[21:54:45] <Dariusz_> games/art - Ie game art design university courses
[21:55:16] <Dariusz_> so I never payed attention to maths that much, just what I had to. Once in College I went with "creative" subjects
[21:55:25] <DarkUranium> Dariusz_, fair enough.
[21:55:45] <derhass> math can be _very_ creative, if not the most creative activity humankind ever did
[21:55:58] <Dariusz_> so, imagine my face when I keep remembering my teachers yelling at me "Yo need cos and sin in ur live!"... ;- )
[21:56:25] <derhass> Dariusz_: YOU NEED COS AND SIN IN YOUR LIFE!
[21:56:30] <Dariusz_> yeah, if only my teachers told me that I can use mathematics to create images... id go to math uni!
[21:56:43] *** borkr <borkr!~borkr@static130-244.mimer.net> has quit IRC (Remote host closed the connection)
[21:57:12] <DarkUranium> Dariusz_, do you have a moment to talk about our Lord and Savior, linear algebra?
[21:57:47] <Dariusz_> ahhaha <3
[21:57:47] <zid> whether they're commutative is covered in detail in the video
[21:57:47] <derhass> DarkUranium: it is not our lord and savior. it is something one can _master_
[21:57:59] <zid> it's spelled out plainly, and with examples
[21:58:06] <Dariusz_> Do u know de wai? ;-D
[21:58:21] <DarkUranium> derhass, por que no los dos?
[21:58:27] *** texs_ <texs_!~tex@43.224.159.211> has joined ##OpenGL
[21:58:33] <DarkUranium> Algebra is love. Algebra is life.
[21:58:35] <DarkUranium> And on that note, brb.
[21:58:41] <Dariusz_> thanks for help :- )
[21:58:45] <derhass> DarkUranium: sorry, I don't know that language
[21:59:21] <Dariusz_> learning matrics... fun :- ) slowly getting there lol. I hope I will now somehow know how to invert my fucking matrix now from pixel space to world space hahaha maybe in few days after more training lol
[21:59:48] *** krystcich <krystcich!~krystcich@178235146044.dynamic-zab-01.vectranet.pl> has quit IRC (Quit: Going offline, see ya! (www.adiirc.com))
[22:00:22] <derhass> Dariusz_: did you have systems of linear equations in school?
[22:01:23] *** immibis <immibis!~chatzilla@222-155-160-32.jetstream.xtra.co.nz> has quit IRC (Ping timeout: 252 seconds)
[22:01:32] <Dariusz_> are they the "X+b+c2+2*10=X=b+200" sort of thing?
[22:01:49] <Dariusz_> if so then yes
[22:01:54] <Dariusz_> I even roughly remember them
[22:02:12] <Dariusz_> I even remember being semi good at them as it was before college and we had to study it lol
[22:02:26] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[22:02:32] <derhass> well. a bit more general than that, but yes, that goes into that direction
[22:03:39] <derhass> Dariusz_: more ilke the "2a+3b=8, 3a-2b=-1" thing
[22:03:49] <Dariusz_> yep
[22:04:04] <Dariusz_> so we had to find a or B or something like that
[22:04:09] <derhass> solving this for a and b is what matrix inversion is about
[22:04:18] <Dariusz_> :o
[22:04:54] <Dariusz_> but you mean if I want to calculate matrix.inver() myself ? or ?
[22:05:07] <derhass> I mean it in general
[22:05:07] <Dariusz_> you mean the underlying math of what happens when you inverse matrix?
[22:05:11] <Dariusz_> not sure what you mean
[22:05:23] <derhass> Dariusz_: I mean the key point of linear algebra
[22:05:43] <derhass> that you use matrices and vectors to represent (and solve) systems of linear equations
[22:09:58] <derhass> I hope I didn't confuse you too much
[22:10:02] <Dariusz_> Im lost
[22:10:03] <Dariusz_> :- )
[22:10:35] <Dariusz_> its ok, I'm slowly following the tutorials/quzes
[22:10:37] <Dariusz_> quizes*
[22:13:05] <derhass> Dariusz_: https://gist.github.com/derhass/b003afc56ab99267937e13c11cd8d5ee
[22:13:21] <derhass> that's 2x2 matrix multiplied by 2d vector yielding another 2d vector
[22:13:34] <derhass> that's the system of equations i've written earlier
[22:14:30] <Dariusz_> hmm
[22:14:37] <Dariusz_> so you asking me to find a and b here?
[22:14:42] <derhass> no
[22:14:57] <derhass> I just told you that inverting the matrix will allow you to find a and b here
[22:14:58] *** asecretcat <asecretcat!~allisonze@pool-72-77-42-97.pitbpa.fios.verizon.net> has quit IRC (Quit: let us connect our intestines and mutually digest)
[22:15:05] <Dariusz_> oh
[22:15:39] <derhass> since if the matrix in that equations is M, it follows that (a,b)^T = M^-1 * (8,-1)^T
[22:16:20] *** asecretcat <asecretcat!~allisonze@pool-72-77-42-97.pitbpa.fios.verizon.net> has joined ##OpenGL
[22:16:43] <Dariusz_> Im semi confused
[22:16:52] <derhass> only semi. that's good, I guess
[22:16:53] *** threenuc <threenuc!~threenuc@88.156.163.16> has quit IRC (Ping timeout: 240 seconds)
[22:17:01] <Dariusz_> ^T means to the power of T ?
[22:17:13] <derhass> oh no. that symbol conventions again
[22:17:23] <derhass> ^T means "transpose"
[22:17:27] <Dariusz_> oh dear
[22:17:29] <Dariusz_> google
[22:17:48] <derhass> so (a,b) ^T is supposed to mean a coulmn vector, and not (a,b) the row vector
[22:18:09] <Dariusz_> ohh
[22:18:12] <Dariusz_> you mean visually
[22:18:13] <Dariusz_> its like
[22:18:18] <Dariusz_> matrix1x2 ?
[22:18:29] <Dariusz_> no
[22:18:30] <Dariusz_> 2x1 ?
[22:18:42] <derhass> 2x1 would be a column vector, yes
[22:19:04] <derhass> this is hard to type in irc, so writing it as row vector and transposing it is more efficent to write
[22:19:25] <Dariusz_> yup make sense, I just had no idea what the ^T mean, I'll take a not of it
[22:20:18] <DarkUranium> back
[22:20:25] <Dariusz_> so the (8,-1) is a vector I should have
[22:20:43] <derhass> well, that was given in my equations above
[22:20:55] <Dariusz_> so its a destination
[22:21:10] <derhass> well, it is one side of an equation
[22:23:17] <Dariusz_> so if (a,b) is a source vector - world space, then the camera space is (8,-1) if I then use the world space.invert()*cameraSpace(8,-1) I will get a new vec3 of new source vector space - I'm fairly sure I called it all in correctly but I guess thats the idea behind inverse, you take the number you get as a result and multiply it by last used inverted matrix on it to go back 1 step
[22:23:19] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)
[22:24:18] <derhass> Dariusz_: well, there is still a lot of confused stuff in your statement, but I think it goes into the right direction
[22:24:25] <Dariusz_> so if I used 2 matrices, I have to multiply the end vector by inverted last matrix, then the result of that multiply be next inverted matrix I used
[22:24:28] <derhass> Dariusz_: let's sort things out
[22:24:54] <derhass> you have world space, and camera space, and a view matrix which transforms from world to camera space
[22:25:09] <derhass> so x_cam = V * x_world
[22:25:22] <Dariusz_> wait
[22:25:41] <Dariusz_> let me re-read ur sentence another 10 times
[22:26:11] <Dariusz_> ( I mean I was reading/watching that statmember for past 2 weeks but just to be sure I can picture it in my head for 99 time)
[22:26:55] <derhass> so what is confusing you?
[22:27:08] <Dariusz_> so is it positionInCameraSpaceVec3 = positionInWorld * viewMatrix
[22:27:27] <Dariusz_> positionInCameraSpaceVec3 = positionInWorldvec3 * viewMatrix4x4
[22:27:37] <derhass> the first one was possible
[22:27:45] <derhass> the latter is not
[22:27:56] <Dariusz_> hmm
[22:28:03] <dahlia> need a vec4 if you have a mat4x4
[22:28:10] <derhass> Dariusz_: look at the compatibiltiy in the dimensions
[22:28:13] *** doek <doek!~doek@2.56.62.188.dynamic.wline.res.cust.swisscom.ch> has quit IRC (Ping timeout: 240 seconds)
[22:28:20] <DarkUranium> remember: a vecN is a Nx1 or 1xN matrix (depending on how you use it)
[22:28:35] <Dariusz_> is it vec4(0,0,0,1) for position and vec4(0,0,0,0) for direction
[22:28:39] <DarkUranium> (in GL, and generally in linear algebra, right-hand-side is typically a column vector, while left-hand-side is row)
[22:28:49] <Dariusz_> ahh
[22:28:50] <derhass> Dariusz_: forget homogenous coordiantes for a moment
[22:28:50] <Dariusz_> yes
[22:29:17] <derhass> well,
[22:29:18] *** doek <doek!~doek@2.56.62.188.dynamic.wline.res.cust.swisscom.ch> has joined ##OpenGL
[22:29:29] *** xerpi <xerpi!~xerpi@216.red-83-45-198.dynamicip.rima-tde.net> has joined ##OpenGL
[22:29:32] *** stefkos <stefkos!~Pawel@82.177.144.226> has quit IRC (Read error: Connection reset by peer)
[22:29:37] <Dariusz_> hmm
[22:29:44] <derhass> positionInCameraSpaceVec4 = positionInWorldvec4 * viewMatrix4x4
[22:29:49] <derhass> this is possible
[22:29:58] *** stefkos <stefkos!~Pawel@82.177.144.226> has joined ##OpenGL
[22:30:00] <derhass> however
[22:30:07] <Dariusz_> so positionInWorld = this is a matrix? Is it .perspective9) and viewMatrix is lookAt() ?
[22:30:11] *** isaac_ <isaac_!acf555e1@gateway/web/freenode/ip.172.245.85.225> has joined ##OpenGL
[22:30:33] <derhass> positionInCameraSpaceVec4^T = viewMatrix4x4^T * positionInWorldvec4^T is also possible
[22:30:39] <isaac_> I am a little problem with linking to glui library on VS. Can anybody help?
[22:30:50] <isaac_> *I have
[22:30:55] <derhass> Dariusz_: positionInWorld is a vector, as we learned
[22:31:08] <Dariusz_> isaac_ https://www.youtube.com/watch?v=cLvxLkgHqQs&list=PLRwVmtr-pp06qT6ckboaOhnm9FxmzHpbY&index=2 try this
[22:31:12] <derhass> Dariusz_: you're mixing in too much different stuff now
[22:31:20] <Dariusz_> yeah I had a feeling I did
[22:31:35] <isaac_> Dariusz_: Thanks. Will take a look
[22:31:37] <derhass> Dariusz_: what I wrote earlier was
[22:31:49] <derhass> 22:25:09 < derhass> so x_cam = V * x_world
[22:31:55] <Dariusz_> what is V ?
[22:31:58] <Dariusz_> view matrix?
[22:32:00] <derhass> with x_cam and x_world being column vectors
[22:32:06] <derhass> and V a view matrix
[22:32:08] <Dariusz_> ok
[22:32:22] <DarkUranium> Dariusz_, remember the rule for dimensions in matrix multiplication?
[22:32:22] <derhass> obvoiusly, dimensionality of the matrices and vectors must match
[22:32:27] <DarkUranium> (assuming you've mentioned that yet)
[22:32:49] <DarkUranium> IxJ * JxK => you drop inner. So you get IxK as output.
[22:33:02] <Dariusz_> yep, I remember rule... I have it printed :- ), so if I want to multiply V*_world, its V = 4x4, ie x_world has to be vec4
[22:33:16] <derhass> Dariusz_: so, V^-1 * x_cam = V^-1 * V * x_world
[22:33:32] <isaac_> DarkUranium: It's a tutorial on OpenGL + Qt, but I have to use glui (stupid homework requirement)
[22:33:32] <DarkUranium> above example, assuming V is 4x4: 4x4 * 4x1 => result:4x1
[22:33:38] <derhass> Dariusz_: I just pre-multiplied V^-1 to both sides of the equation
[22:34:14] <derhass> Dariusz_: which does change both sides in an equal way, so if they were equal before (and they were, it is an equation), they are equal now
[22:34:16] <DarkUranium> isaac_, is ... is that even possible?
[22:34:21] <DarkUranium> isaac_, doesn't GLUI use GLUT?
[22:34:27] <isaac_> I am getting the weird link error, even though I am linking with the correct library:
[22:34:31] <isaac_> unresolved external symbol "class GLUI_Master_Object GLUI_Master"
[22:34:52] <derhass> Dariusz_: the interesting thing here is, that by definition V^-1 * V is I
[22:35:07] <isaac_> DarkUranium: Yes, it depends on GLUT. I build its dynamic library successfully, but I get an error in my sample application
[22:35:20] <derhass> Dariusz_: so V^-1 * x_cam = x_world
[22:35:52] <isaac_> DarkUranium: The only error I get is about this global object: "GLUI_Master" which is defined in glui
[22:35:52] <derhass> or, in other words, you can go from wolrd space to cam space with V, and back from cam space to world space with V^-1
[22:36:12] <DarkUranium> isaac_, GLUT does the same job as Qt, though. Meaning, GLUT and Qt will "fight".
[22:36:25] <DarkUranium> and I've no idea what's going on there; are you linking with it?
[22:36:37] <derhass> what has GLUI to do with GLUT?
[22:36:38] <isaac_> Sorry for disturbing you guys. I can wait.
[22:37:05] <DarkUranium> derhass, assuming me and isaac_ are talking about the same lib: "GLUI is a GLUT-based C++ user interface library which provides [...]"
[22:37:08] <DarkUranium> derhass, so, a lot.
[22:37:16] <derhass> DarkUranium: OK
[22:37:20] <derhass> DarkUranium: that explains it
[22:37:38] <derhass> I did not consider the posibility of someone actually wrapping GLUT
[22:37:48] * zid writes a glui wrapper
[22:37:48] <DarkUranium> yeah ... silly, innit?
[22:37:52] <DarkUranium> unless I'm misunderstanding it
[22:38:02] <DarkUranium> isaac_, basically, GLUT is a library (one you should not have been using even back in 2008, let alone 2018) for window management, input handling and so on.
[22:38:08] *** madsy <madsy!~madsy@fu/coder/madsy> has quit IRC (Quit: leaving)
[22:38:16] <isaac_> DarkUranium: Yes, that's the library. I am getting a weird link error from this silly global variable
[22:38:20] <DarkUranium> Apart from just general "outdatedness", it has this ... weird model of using it, where it basically hijacks most of your low-level code.
[22:38:26] <DarkUranium> isaac_, problem is, Qt does the *exact same job*.
[22:38:29] <zid> DarkUranium: my entire PC is 3dfx based
[22:38:36] <DarkUranium> zid, Voodoo 2 or 3?
[22:38:39] <zid> in sli
[22:38:42] <DarkUranium> lol
[22:38:50] <derhass> I'd hoped for voodoo 1
[22:38:53] <derhass> but it didn't do SLI
[22:38:56] <Dariusz_> holy crap
[22:38:57] <zid> I can't find my voodoo 2 :(
[22:39:02] <Dariusz_> so u got voodoo6 in total? :D
[22:39:21] <isaac_> DarkUranium: I know. I have experience with Qt too. Our shitty teaching assistant has forced us to use glui too
[22:39:22] <DarkUranium> isaac_, unless you're just using the utility parts of Qt. Are you?
[22:39:49] <DarkUranium> =\
[22:39:50] <derhass> Dariusz_: you're still with me?
[22:40:21] <Dariusz_> (I am just waiting for isaac to sort out his linking :- ) (
[22:40:22] <Dariusz_> )
[22:40:22] <Dariusz_> ))
[22:40:24] <Dariusz_> lol
[22:41:04] <isaac_> DarkUranium: I have experience with C++ too, but I cannot figure out why this link error happens.
[22:41:22] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[22:41:27] *** Mangy_Dog <Mangy_Dog!Mangy_Dog@05449fa3.skybroadband.com> has joined ##OpenGL
[22:41:32] *** Waynes <Waynes!~Waynes@23.94.61.168> has quit IRC (Quit: Leaving.)
[22:41:34] <DarkUranium> isaac_, hm.
[22:41:39] <isaac_> Dariusz_: lol, thanks for closing those parentheses ;)
[22:41:44] <DarkUranium> isaac_, I've never used GLUI, and I haven't used GLUT since like ... 2006 or so.
[22:42:14] <Mangy_Dog> Hi i need some help with stencil commands for use on an embedded display... (ftdi EVE) Can some one give me a hand for 5 or so minutes? im struggling to get the resault i want.
[22:42:21] <DarkUranium> Dariusz_, related: https://xkcd.com/541/ https://xkcd.com/859/
[22:42:24] <Dariusz_> issac you can try googling github for gluit vs projects, I tend to do that for cmake if I have no idea how to link it
[22:42:27] <isaac_> DarkUranium: I tried to instantiate from a class defined in glui in my code, and it works.
[22:43:07] <derhass> Mangy_Dog: explain the issue
[22:43:09] <DarkUranium> isaac_, wait, what *doesn't* work then?
[22:43:28] <Dariusz_> DarkUranium HAHHAHAHAHAH LOL XD
[22:43:30] <isaac_> But somehow, the "GLUI_Master" global variable defined in the glui library that has the *same type* doesn't resolve
[22:43:51] <derhass> isaac_: what's the exact error statement?
[22:43:57] <DarkUranium> isaac_, sounds like it's the variable not resolving, not the type.
[22:44:05] <isaac_> DarkUranium: Exactly
[22:44:13] <DarkUranium> Visual C++?
[22:44:26] <isaac_> Error LNK2001 unresolved external symbol "class GLUI_Master_Object GLUI_Master" (?GLUI_Master@@3VGLUI_Master_Object@@A)
[22:44:40] <isaac_> Yeap. VC++
[22:44:46] <DarkUranium> my condolences.
[22:44:48] <DarkUranium> check their sources if they have a redeclaration in any *.cpp file
[22:44:55] <DarkUranium> if not, just declare it somewhere appropriate
[22:45:15] <derhass> it is not a declaration which is missing
[22:45:21] <isaac_> Lol
[22:45:29] <derhass> the compiler would care about that, not the linker
[22:45:42] <isaac_> They have instantiated it inside "glui.cpp" as:
[22:45:43] <Mangy_Dog> Well i have a radial progress bar. im using 2 points to declare the inner and outter edge of the bar width... Im using 3 edge strips to fill up the bar. Now im struggling to get the stenciling to work with the edge strips correctly. I can create my filled bar. but i want the edge strips to do the final stenciling. Trouble is they are also letting everything else behind it show up... IE the
[22:45:43] <Mangy_Dog> bitmap thats meant to represent the filled bar. That texture is showing outside of the 2 point region
[22:45:44] <isaac_> GLUI_Master_Object GLUI_Master;
[22:45:53] <DarkUranium> derhass, no, what I mean is
[22:46:12] <DarkUranium> derhass, in MSVC, if you have an `extern T foo;` and you don't declare it somewhere in a *.cpp file without `extern`, it might not work
[22:46:14] <isaac_> And this little shit is declared in glui.h as:
[22:46:15] <isaac_> extern GLUIAPI GLUI_Master_Object GLUI_Master;
[22:46:35] <DarkUranium> isaac_, any namespaces in use? Make sure both are in the same thing. Also add GLUIAPI
[22:46:39] <DarkUranium> (whatever that is)
[22:46:46] <DarkUranium> ... might even just be a MSVC bug. God knows I've seen enough of those.
[22:46:58] <Mangy_Dog> https://pastebin.com/xDnwYLCw this correctly shows the filled bar
[22:46:59] *** jeannekamikaze <jeannekamikaze!~jeanne@c-73-223-201-25.hsd1.ca.comcast.net> has joined ##OpenGL
[22:47:06] *** vtx <vtx!~vtx@82-132-219-55.dab.02.net> has joined ##OpenGL
[22:47:11] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 248 seconds)
[22:47:13] <isaac_> Oh I hope not. Even on VS 2017?
[22:47:22] <DarkUranium> dunno about release, but RC2 sure had a few
[22:47:25] <isaac_> DarkUranium: I havened declared a namespace, but let me double check
[22:47:45] <DarkUranium> one particular critical one that's been going since '98 or thereabouts
[22:47:58] <DarkUranium> I mean, make sure `extern` and non- are in the same one
[22:48:11] <Mangy_Dog> but if i run another sencil op with the edge strips it fills shows everything the strip covers. not just the bar
[22:48:16] <Dariusz_> derhass ok looks like they gonna take a while so might as well nick chat lol :- ) right so " V^-1 * x_cam = x_world"
[22:48:39] <DarkUranium> isaac_, and, this might be obvious, but make sure you're compiling the *.cpp file!
[22:48:40] <derhass> Dariusz_: that's all
[22:48:52] <derhass> Mangy_Dog: what is an "edge strip"?
[22:49:03] <Dariusz_> hmm
[22:49:17] <Mangy_Dog> its a line tool that fills a certain portion to the right or left or above or bellow the line drawn
[22:49:21] <Dariusz_> when you say that by definition V^-1 * V is I, you say that inverse of matrixX * matrixX = I ?
[22:49:24] <Mangy_Dog> between the two vertex points
[22:49:24] <derhass> Dariusz_: see that statement I posted after that
[22:49:37] <Dariusz_> I means that the vector4D was moved out/and back so its back to the same spot?
[22:50:18] <derhass> Mangy_Dog: ok, I'm still in the process of deciphering your paste
[22:50:37] <derhass> Dariusz_: yes.
[22:50:59] <isaac_> DarkUranium: Just for a safety check, I rename that variable and got some link error when compiling *glui* library. So they cpp file is compiling.
[22:51:09] <vtx> hi guys, i am trying to debug my 2d texture arrays right now, and i think my issue is related to mip map problems. can anyone recommend good visual explanations of how mip maps work in opengl?
[22:51:12] <DarkUranium> isaac_, huh.
[22:51:21] <DarkUranium> well, do you have that GLUIAPI in the Cpp file?
[22:51:33] <derhass> Mangy_Dog: but I don't know how to do that
[22:51:35] <isaac_> DarkUranium: Both declaration and definition are in the same namespace
[22:51:46] <derhass> the initial stencil state is unknown
[22:51:46] <isaac_> DarkUranium: Nope. Should it be?
[22:51:48] <DarkUranium> yes, but there's a GLUIAPI in one of them, but not in the other.
[22:51:48] <Mangy_Dog> im uploading something to try and explain better
[22:51:51] <Mangy_Dog> give me a minute
[22:51:54] <DarkUranium> I don't even know what that is, but give it a shot
[22:51:56] <derhass> stencil op lists only two of the three arguiments
[22:52:15] <derhass> VERTEX2II does not say anyhting to me
[22:52:33] <derhass> and I only see drawing two points and a "bitmap"
[22:52:58] <derhass> no idea where youre edge strips enter the picture
[22:53:09] <Mangy_Dog> they havnt in that snippet i posted
[22:53:15] <Mangy_Dog> i took them out to try and explain some stuff
[22:53:21] <derhass> ok
[22:53:31] <Dariusz_> so if I have Bvec4 = V* Avec4() , if I do v^-1 *bvec4 = Avec4()
[22:53:34] <derhass> but I fear that I don't understand your explanation
[22:53:42] <Mangy_Dog> https://i.imgur.com/24EQLyV.jpg the code i posted shows this...
[22:54:16] <derhass> wow
[22:54:17] <Mangy_Dog> https://www.youtube.com/watch?v=OYGN-ws5a2k
[22:54:27] <Mangy_Dog> this is the thing im working on
[22:54:40] <derhass> I wonder how it does this
[22:54:42] <Mangy_Dog> currently im using an older version of the stencil to just have a bland red colour
[22:54:54] <derhass> so BEGIN(POINTS) acrually draws circles?
[22:55:15] <Mangy_Dog> but using the red hued texture in the bar filler
[22:55:18] <Mangy_Dog> yeah
[22:55:21] <DarkUranium> Dariusz_, yes.
[22:55:26] <isaac_> DarkUranium: Sure. even Bjarne can't remember correctly when one should use externs
[22:55:31] <isaac_> DarkUranium: BTW, it GLUIAPI is defined as "__declspec(dllexport)" during library building
[22:56:01] <DarkUranium> isaac_, that would probably break things, yes, if missing. But not necessarily
[22:56:04] <derhass> Mangy_Dog: what's the initial state of the stencil buffer?
[22:56:06] <DarkUranium> I've no idea how dllexport works, exactly.
[22:56:10] <derhass> Mangy_Dog: and test
[22:56:13] <isaac_> DarkUranium: and "__declspec(dllimport)" duriing library usage in header. Which seems to be correct.
[22:56:18] <Mangy_Dog> because memory is so limited im having to resort to using duplicates of the same bitmap file and cheat like that
[22:56:25] <Mangy_Dog> the state is empty
[22:56:26] <DarkUranium> isaac_, try adding that to the *.cpp file, maybe that's the problem?
[22:56:29] <Mangy_Dog> before i start this
[22:56:43] <derhass> empty isn't a state. each pixel in the stencil buffer has some value
[22:56:52] <Mangy_Dog> its been cleared
[22:56:55] <derhass> and STRENCIL_OP means exactly what?
[22:56:58] <Mangy_Dog> clear,0,1,0 clears it
[22:57:01] <derhass> in terms if actual glStencil?
[22:57:12] <derhass> glStencilOp, i mean
[22:57:12] <Mangy_Dog> thats the stencil oporation
[22:57:16] <derhass> well
[22:57:19] <isaac_> DarkUranium: Prefixing the definition with GLUIAPI in cpp file?
[22:57:23] <DarkUranium> isaac_, yes.
[22:57:27] <derhass> how are the 2 parameters mapped to the 3 real ones?
[22:57:34] <Mangy_Dog> yeah this is a thinned down version of opengl but the stencil system works teh same
[22:57:41] <derhass> well
[22:57:44] <derhass> more or less
[22:57:48] <DarkUranium> isaac_, you could always try the C++ and MSVC channels (I can't recall if it's #c++ or what, and I'm not sure the latter exists --- probably does)
[22:57:49] <derhass> in some cases, less. it seems
[22:57:50] <DarkUranium> they would know more.
[22:57:50] *** qeed <qeed!~qeed@pool-98-118-249-109.clppva.fios.verizon.net> has joined ##OpenGL
[22:58:10] <isaac_> DarkUranium: I tried as you suggested. I didn't help either.
[22:58:15] <DarkUranium> dang.
[22:58:32] <Mangy_Dog> well the three stencil tools are op func and mask
[22:58:42] <derhass> Mangy_Dog: I also don't know what CLEAR(0,1,0) is supposed to clear stencil to
[22:58:51] <isaac_> DarkUranium: Sure thanks. I will give it a shot.
[22:58:55] <derhass> Mangy_Dog: I know how the stencil test works in GL
[22:59:00] <Mangy_Dog> it clears any stilcil arguments previously int eh command list
[22:59:18] <derhass> Mangy_Dog: I just don't know how that functionality maps to your thingy
[22:59:34] <Mangy_Dog> :/
[22:59:58] <derhass> this is some very weird abstraction you have there
[23:00:12] <Mangy_Dog> blame ftdi
[23:00:16] <Mangy_Dog> i didnt make it ~;p
[23:00:19] <Mangy_Dog> im just trying to build init
[23:00:22] <Mangy_Dog> in it
[23:00:47] *** texs_ <texs_!~tex@43.224.159.211> has quit IRC (Quit: Leaving)
[23:00:52] <Dariusz_> so when I move camera, I generate new lookAt(), - this is a matrix as far as I know. if I have that as a matrix and I want to know its position in I take "worldSpace" I need to take the lookAt()^-1 * well if I just take vec4() I will only get x/y/z position, but no rotation so I have to make a new matrix with x,y,z+rotation, and do lookAt()^-1 *matrix(position,rotation) ? this will push me 1 step lower, to world
[23:00:52] <Dariusz_> matrix?
[23:01:12] *** ville <ville!~ville@37-136-30-222.rev.dnainternet.fi> has joined ##OpenGL
[23:01:16] <derhass> Mangy_Dog: well, you dectement it in the inner circle, and add 1 back for the bigger circle, and end up with a ring of 1 if the initial value is 0
[23:01:26] <derhass> I get that
[23:01:32] *** ville <ville!~ville@37-136-30-222.rev.dnainternet.fi> has quit IRC (Client Quit)
[23:01:48] <derhass> although it is still not 100% clear to me what this snippet actualy means in GL terms
[23:01:52] <derhass> but fair enough
[23:01:54] <derhass> Mangy_Dog: so.
[23:02:07] <derhass> Mangy_Dog: what's the issue now?
[23:02:25] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has quit IRC (Read error: Connection reset by peer)
[23:02:35] <Mangy_Dog> the strips arnt affecting the stencil as i hoped
[23:02:42] <Mangy_Dog> one min i think i just had a eurika moment
[23:02:53] *** ratchetfreak <ratchetfreak!~ratchetfr@ptr-82s3g7mzgy0p2f49u7u.18120a2.ip6.access.telenet.be> has joined ##OpenGL
[23:02:58] <derhass> Mangy_Dog: so, what do you intent them to do?
[23:03:15] <Mangy_Dog> fixed it D:
[23:03:18] *** Nightwing52 <Nightwing52!~Thunderbi@47-219-227-233.lfkncmta01.res.dyn.suddenlink.net> has quit IRC (Quit: Later!)
[23:03:25] <Mangy_Dog> eurika moment worked
[23:03:34] <derhass> Mangy_Dog: so you made me parse this crap for _nothing_ ?
[23:03:39] <Mangy_Dog> truth be told i didnt fully understand how the stencil system worked
[23:03:56] <Mangy_Dog> now i just realised the ref is the maths value i was trying to capture
[23:04:06] <Mangy_Dog> i did say if some one could help me for 5 minutes :p
[23:04:10] <Mangy_Dog> you helped
[23:04:18] <derhass> I don't know how
[23:04:24] <Mangy_Dog> soemthing you just said triggered the bell in my head
[23:04:35] <derhass> Mangy_Dog: what exactly?
[23:04:45] <derhass> I'd like to at least know how I helped
[23:04:50] <derhass> ^^
[23:04:52] <Mangy_Dog> <derhass> Mangy_Dog: well, you dectement it in the inner circle, and add 1 back for the bigger circle, and end up with a ring of 1 if the initial value is 0
[23:05:00] <Mangy_Dog> jus tmade me think of the ref as a math tool
[23:05:13] <Mangy_Dog> im a graphics artist by trade i was thinking in graphical masks and maps
[23:05:24] <Mangy_Dog> which threw me
[23:05:36] <derhass> hmmm. graphics artist day here in the channel?
[23:05:44] <Mangy_Dog> :D
[23:06:06] <Dariusz_> derhass graphics artist?
[23:06:14] <derhass> no
[23:06:16] <derhass> not at all
[23:06:22] <derhass> totally untalented in that regard
[23:06:22] <Dariusz_> what u asking for I got lost
[23:06:51] <derhass> Dariusz_: I'm still trying to parse your latest statement
[23:06:57] <Dariusz_> me too
[23:07:02] <derhass> Dariusz_: and I must say I have no idea what your question is about
[23:07:19] <derhass> there typically is no "world matrix"
[23:07:19] <Dariusz_> hmm
[23:07:19] *** jcarpenter2 <jcarpenter2!rofl@2601:441:8680:4631:286c:d111:efd:a8bb> has quit IRC (Quit: Leaving)
[23:07:35] <derhass> we have spaces and matrices to transform between them
[23:07:41] *** jcarpenter2 <jcarpenter2!rofl@2601:441:8680:4631:286c:d111:efd:a8bb> has joined ##OpenGL
[23:08:25] <derhass> and (lookat)^-1 * vec4(0,0,0,1) will just yield the camera position in world space (which you know before, because that is one of the parameters you put into lookAt)
[23:08:48] <derhass> (lookat)^-1 * (0,0,-1,0) will yield the viewing direction vector in world space
[23:08:55] <derhass> and so on
[23:12:57] <Dariusz_> wait
[23:12:57] <Dariusz_> what
[23:13:23] <Dariusz_> lookat()^-1 *(0,0,-1,0) = vec4(x,y,z,w) viewing direciton/rotation?
[23:15:44] *** vtx <vtx!~vtx@82-132-219-55.dab.02.net> has quit IRC (Quit: vtx)
[23:16:23] *** ImQ009 <ImQ009!~ImQ009@unaffiliated/imq009> has quit IRC (Read error: Connection reset by peer)
[23:17:32] <Dariusz_> so a lookat()^-1 *(0,0,0,1) yelds translation ?
[23:20:08] *** vtx <vtx!~vtx@cpc76428-belc8-2-0-cust570.2-1.cable.virginm.net> has joined ##OpenGL
[23:22:53] *** SwiftMatt <SwiftMatt!~Objective@2601:282:4300:3e:dde3:e4d4:ab15:1488> has joined ##OpenGL
[23:23:43] *** irrenhaus3 <irrenhaus3!~xenon@ip-37-201-7-18.hsi13.unitymediagroup.de> has quit IRC (Quit: Lost terminal)
[23:24:56] <isaac_> DarkUranium: Are you around?
[23:25:10] <DarkUranium> yup
[23:25:57] <isaac_> DarkUranium: Guess who is now feeling both happy and dumb?
[23:26:27] <Dariusz_> mw
[23:26:28] <Dariusz_> me
[23:26:29] <DarkUranium> haha
[23:26:33] <DarkUranium> isaac_, what was wrong?
[23:28:51] <isaac_> Princess17b29a: I just have to put a "#define GLUIDLL" in my source code
[23:28:54] *** Quetzal2 <Quetzal2!~Quetzal2@unaffiliated/quetzal2> has quit IRC (Read error: Connection reset by peer)
[23:29:31] <DarkUranium> huh.
[23:29:57] <DarkUranium> MSVC is weird.
[23:32:39] *** isaac__ <isaac__!acf555e1@gateway/web/freenode/ip.172.245.85.225> has joined ##OpenGL
[23:32:50] <isaac__> DarkUranium: the "GLUIAPI" only defined as "GLUIAPI __declspec(dllimport)" if "GLUIDLL" was already defined
[23:33:30] *** isaac_ <isaac_!acf555e1@gateway/web/freenode/ip.172.245.85.225> has quit IRC (Ping timeout: 260 seconds)
[23:33:30] <DarkUranium> isaac__, glui is a mess -_-
[23:33:33] <DarkUranium> or so it seems
[23:36:07] *** stefkos <stefkos!~Pawel@82.177.144.226> has quit IRC (Quit: Leaving)
[23:38:31] <zid> perhaps the build script was supposed to set it
[23:41:24] *** nimitz <nimitz!~ztimin@24.157.180.57> has joined ##OpenGL
[23:42:37] *** ShadowIce <ShadowIce!~pyoro@unaffiliated/shadowice-x841044> has quit IRC (Quit: Leaving)
[23:45:04] *** _gr3g_2 <_gr3g_2!~greg@pool-72-80-159-17.nycmny.fios.verizon.net> has joined ##OpenGL
[23:46:34] *** madsy <madsy!~madsy@fu/coder/madsy> has joined ##OpenGL
[23:47:35] *** davr0s <davr0s!~textual@host86-152-129-209.range86-152.btcentralplus.com> has quit IRC (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
[23:47:43] *** nimitz <nimitz!~ztimin@24.157.180.57> has quit IRC (Ping timeout: 252 seconds)
[23:48:36] *** hgoel <hgoel!uid175521@gateway/web/irccloud.com/x-xmprmxstyyaozulo> has quit IRC (Quit: Connection closed for inactivity)
[23:54:58] *** davr0s <davr0s!~textual@host86-152-129-209.range86-152.btcentralplus.com> has joined ##OpenGL
top

   February 25, 2018  
< | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | >