Hoewel COM was bedoeld als cross platform component model is het daar nooit van de grond af gekomen.
COM is bedoeld als taal-onafhankelijk component model, niet platform-onafhankelijk. Dat is een verschil. De bedoeling was dus dat talen als Visual Basic, C, C++ etc allemaal dezelfde objecten konden gebruiken. In feite probeert .NET nu hetzelfde, maar dan met een iets andere benadering.
Er zitten ook zoveel specifiek Window types in COM, dat is nooit voldoende geabstraheerd.
Aangezien het nooit bedoeld was voor iets anders dan Windows, is er geen reden om dat te abstraheren.
Maar hier moet je wel even een streep trekken tussen COM en DirectX. DirectX gebruikt namelijk maar een hele minimale subset van COM. DirectX is dan ook vrijwel niet afhankelijk van Windows-specifieke typen. DirectX werkt voornamelijk met de eigen objecten onderling, en daarnaast alleen hele simpele primitieven zoals DWORDs en floats.
Het enige Windows-specifieke is dat je je Direct3D-context aan een window-handle moet hangen. Maar dat is bij OpenGL niet anders (okee, strikt gezien gebruik je bij OpenGL niet het window zelf, maar de device context van dat window).
Dat is vrij makkelijk te abstraheren, want iedere GUI heeft wel iets van een handle of pointer naar een window.
Als je mijn simpele open source OpenGL-engine bekijkt, zie je dat ik ook een dunne COM-achtige laag gebruik om het object-oriented te maken (en ref-counted), en dat is compleet platform-onafhankelijk:
http://sourceforge.net/p/...default/tree/BHM3DSample/
Deze codebase bouwt as-is op Windows, OS X, linux en FreeBSD, en ik heb ook varianten ervan draaien op iOS en Android (die hebben een extra laagje nodig zodat het in het specifieke app-framework draait, maar de OpenGL-code zelf is vrijwel ongewijzigd. Enige verschillen zijn met het laden van shaders of textures, wat vanuit de app package moet).
Dat wil niet zeggen dat ineens alles wat die persoon zegt waar is.
Het is vooral een uitnodiging om de discussie technisch te houden. Kom maar op, ik weet waar ik over praat, ik hou me wel staande in een serieuze discussie. Maar jij gaat JUIST de technische dingen uit de weg, en maakt alles persoonlijk.
Lees anders maar eens wat dingen op m'n blog, dan weet je ongeveer wat je kunt verwachten:
http://scalibq.wordpress....ldskoolretro-programming/
Ik heb op vele platforms gewerkt, ook op het laagste niveau, met assembly direct de hardware aanspreken etc, software renderers gebouwd, en al met vroege 3d accelerators en custom APIs gespeeld. Ik snap wel hoe het onder de motorkap zit. Dus kom maar op, maak het maar technisch. Ik daag je uit.
Nee dat is jouw observatie. Ik heb namelijk wel eens een keer iemand precies het omgekeerde zien beweren. Die kan er net zoveel of weinig verstand als jij van hebben.
Wederom, maak het dan een serieuze discussie! Wat ik beweer is makkelijk te verifieren danwel te weerleggen. Maak het dan niet persoonlijk, maar toon aan dat ik ongelijk heb, als je dat denkt.
Ik heb al voorbeelden genoemd die aantonen dat ik wel degelijk gelijk heb: HLSL werkt op alle GPUs, net als tessellation.
Andere voorbeelden zijn bv shadow mapping. Dat werd niet officieel ondersteund in D3D9, omdat alleen nVidia support had (dat deden ze via een custom texture format, dus je kon het wel gebruiken). Toen AMD het ook ging ondersteunen in hun DX10-hardware, kreeg de DX10-API dus ook standaard support mee voor depth/stencil textures.
Ik kan vast nog veel meer voorbeelden noemen als ik even de moeite neem, maar voorlopig heb ik al een aantal punten genoemd die mijn verhaal bevestigen, en jij hebt nog niets genoemd dat het tegenspreekt. Het is dus aan jou.
Ik heb op alles inhoudelijk antwoord gegeven
Denk je dat echt? Zie hierboven. Kom maar op.
Wederom lees je niet goed en haal je dingen door elkaar.
Ik haal helemaal niets door elkaar. Jij zegt dat letterlijk:
"Seamless is zo'n ruim begrip. Gaat heet hier om eventueel performance verlies." -> jij brengt 'seamless' in verband met 'eventueel performance verlies'.
En dan wil je nog roepen dat ik kinderachtig doe.
De quote 'seamless' kwam in de oorspronkelijke Angle project pagina naar voren zonder verdere uitleg. 'Naadloos' op elkaar aansluiten kan wel degelijk geen performance verlies door API xxx inhouden.
Is wel HEEL vergezocht, en dan druk ik me nog mild uit.
De Chrome blog legt de reden voor hun gebruik uit: geen gedoe met driver support
Ja, beide quotes komen van de mensen van hetzelfde project, dus als je ze combineert, is het verhaal heel duidelijk. Daarom heel irritant dat jij steeds selectief loopt te quoten, en dan zeuren dat ze iets niet gezegd hebben. Dat hebben ze dus wel gezegd. Fijn dat je dat eindelijk toegeeft.
Ik herhaal mezelf: de Chrome blog rept daar niet over.
Ik herhaal mezelf ook: Je eist dat ik met een enkele quote kom waar ALLE voordelen van ANGLE in genoemd worden in ALLE situaties (delen van ANGLE worden ook in OpenGL-implementaties gebruikt).
Iedere keer pak je dan 1 quote eruit, en zeur je dat er bepaalde dingen niet in staan. Die staan dan wel in andere quotes die ik al had gegeven, maar dan doe je net alsof die quotes er niet zijn.
Wederom herhaling wat ik al eerder zei: da's uit 2011.
Wederom herhaal ik mezelf: wat is daar het probleem mee?
Ook andere mensen zoals koelpasta irriteren zich aan je manier van posten.
Omdat koelpasta ook een hoop onzin verkondigt, net als jij.
Mensen vinden het meestal niet zo leuk als ze op hun fouten gewezen worden.
[Reactie gewijzigd door Verwijderd op 1 augustus 2024 15:31]