Anti-Jammer-Thread
Re: Anti-Jammer-Thread
Wenn ich eine gute Idee liefere, bekomme ich die Entwicklung eines Minispiels mit meinem Stundensatz bezahlt.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Re: Anti-Jammer-Thread
Höchster Kontostand seit Lebensbeginn. So langsam macht sich ehrliche Arbeit bezahlt.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
- Schrompf
- Moderator
- Beiträge: 5045
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Ich bin gerade in vorsichtigen Verhandlungen mit noch völlig offenem Ausgang, um Splatter auf die neuen Konsolen zu bekommen. Wie gesagt noch alles völlig offen und vage, aber ich freu mich wie ein Schneemann im Frostfach.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Kleiner Vergleich der Konvertierung von 32-Bit-BGRA (z.B. D3DFORMAT_R8G8B8A8 oder Gdiplus::PixelFormat32bppPARGB) zu RGBA (DXGI_FORMAT_R8G8B8A8_UNORM) in Visual C++ 2012 x86:
Der naive Weg:
rgba.r = bgra.r;
rgba.g = bgra.g;
rgba.b = bgra.b;
rgba.a = bgra.a;
movzx ecx,byte ptr [eax+1]
mov byte ptr [edx-3],cl
movzx ecx,byte ptr [eax]
mov byte ptr [edi+eax],cl
movzx ecx,byte ptr [eax-1]
mov byte ptr [edx-1],cl
movzx ecx,byte ptr [eax+2]
mov byte ptr [edx],cl
Cleverer durch Endianness-Konvertierung (24 % höherer Durchsatz):
auto & in = (uint32_t const &)bgra;
auto & out = (uint32_t &)rgba;
out = (_byteswap_ulong(in) << 8) | (in & 0xFF000000);
mov ecx,dword ptr [edx]
mov eax,ecx
bswap eax
shl eax,8
and ecx,0FF000000h
or eax,ecx
mov dword ptr [edi+edx],eax
Noch cleverer durch Rotation (50 % höherer Durchsatz als naiv):
auto & in = (uint32_t const &)bgra;
auto & out = (uint32_t &)rgba;
auto const argb = _byteswap_ulong(in);
out = (temp << 24) | (temp >> 8);
mov ecx,dword ptr [esi+eax]
bswap ecx
ror ecx,8
mov dword ptr [eax-4],ecx
In ca. halb so vielen Takten geht es via SSSE3, aber dann muss man auf Quartetten arbeiten und sowas tue ich nicht. Tatsächlich ist man natürlich speicherlimitiert. Und wenn man GANZ faul / schlau ist, lässt man die Konvertierung einfach komplett weg und konvertiert die Textur bei der Bearbeitung im Shader via .bgra.
Der naive Weg:
rgba.r = bgra.r;
rgba.g = bgra.g;
rgba.b = bgra.b;
rgba.a = bgra.a;
movzx ecx,byte ptr [eax+1]
mov byte ptr [edx-3],cl
movzx ecx,byte ptr [eax]
mov byte ptr [edi+eax],cl
movzx ecx,byte ptr [eax-1]
mov byte ptr [edx-1],cl
movzx ecx,byte ptr [eax+2]
mov byte ptr [edx],cl
Cleverer durch Endianness-Konvertierung (24 % höherer Durchsatz):
auto & in = (uint32_t const &)bgra;
auto & out = (uint32_t &)rgba;
out = (_byteswap_ulong(in) << 8) | (in & 0xFF000000);
mov ecx,dword ptr [edx]
mov eax,ecx
bswap eax
shl eax,8
and ecx,0FF000000h
or eax,ecx
mov dword ptr [edi+edx],eax
Noch cleverer durch Rotation (50 % höherer Durchsatz als naiv):
auto & in = (uint32_t const &)bgra;
auto & out = (uint32_t &)rgba;
auto const argb = _byteswap_ulong(in);
out = (temp << 24) | (temp >> 8);
mov ecx,dword ptr [esi+eax]
bswap ecx
ror ecx,8
mov dword ptr [eax-4],ecx
In ca. halb so vielen Takten geht es via SSSE3, aber dann muss man auf Quartetten arbeiten und sowas tue ich nicht. Tatsächlich ist man natürlich speicherlimitiert. Und wenn man GANZ faul / schlau ist, lässt man die Konvertierung einfach komplett weg und konvertiert die Textur bei der Bearbeitung im Shader via .bgra.
Zuletzt geändert von Krishty am 08.05.2014, 21:14, insgesamt 2-mal geändert.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Kann ich glauben! Könntest du vielleicht irgendwann ein Post-Mortem zu deinen Erfahrungen mit der Veröffentlichung verfassen? Um was für Sachen du dich kümmern musstest; was unerwartet kam; was du nächstes Mal besser machst usw.? Ruhig auch häppchenweise ein paar Zeilen pro Woche oder so … ich denke nur, dass das ein unschätzbarer Gewinn für die unter uns wäre, die auch mal was rausbringen wollen.Schrompf hat geschrieben:Ich bin gerade in vorsichtigen Verhandlungen mit noch völlig offenem Ausgang, um Splatter auf die neuen Konsolen zu bekommen. Wie gesagt noch alles völlig offen und vage, aber ich freu mich wie ein Schneemann im Frostfach.
- Schrompf
- Moderator
- Beiträge: 5045
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Gerne, wenn es mir dann noch einfällt :) Ich lese andersherum ja auch gern, was Du so über CPUs und effizientes Arbeiten rausbekommst.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Re: Anti-Jammer-Thread
Steambox?Schrompf hat geschrieben:Ich bin gerade in vorsichtigen Verhandlungen mit noch völlig offenem Ausgang, um Splatter auf die neuen Konsolen zu bekommen. Wie gesagt noch alles völlig offen und vage, aber ich freu mich wie ein Schneemann im Frostfach.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
- Schrompf
- Moderator
- Beiträge: 5045
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Mac/Linux sollen eigentlich noch davor kommen. Das ist aber noch wackelig, weil die Portierung nach aktueller Marktsituation noch ein Verlustgeschäft wäre. Ich hätte das aber gern als Erfahrung mal gemacht. Von daher: Schaumermal.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Re: Anti-Jammer-Thread
Als ich das damals versuchen wollte, habe ich stattdessen ein neues Projekt angefangen und bin ich umgestiegen.Schrompf hat geschrieben:Mac/Linux sollen eigentlich noch davor kommen. Das ist aber noch wackelig, weil die Portierung nach aktueller Marktsituation noch ein Verlustgeschäft wäre. Ich hätte das aber gern als Erfahrung mal gemacht. Von daher: Schaumermal.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
S.T.A.L.K.E.R.: The Lost Alpha ist kostenlos veröffentlicht worden.
Bevor S.T.A.L.K.E.R: Shadow of Chernobyl 2007 erschien, war es 10 Jahre in Entwicklung. Leider war das fertige Produkt eine herbe Enttäuschung und hatte kaum etwas mit der ursprünglichen Version gemein. Die geleakten Alpha-Versionen von 2002–2004 hingegen waren atmosphärisch und technisch Meisterwerke – aber nicht ansatzweise fertig.
The Lost Alpha hatte als Modding-Versuch begonnen, die Inhalte der Alpha-Versionen auf die Technik der Endversion zu übertragen. Das Team hat Unterstützung vom Originalentwicklungsstudio bekommen und so war es möglich, eine unveröffentlichte Engine-Version mit den Quelldaten aus der frühen Entwicklung zu kombinieren. Weil Leaks der Mod auftauchten, sah man sich zu einer frühen Veröffentlichung gezwungen.
Dadurch erklären sich auch technische Besonderheiten: Das Spiel belegt 20 GiB Speicherplatz und verspeist auf höchsten D3D-10-Einstellungen jede GPU zum Frühstück (man ist noch nicht zur Optimierung gekommen). Zugleich steht für weniger starke PCs aber auch der Direct3D-8-Renderer von 2002 zur Verfügung.
Wenn ich mal wieder ein Wochenende frei habe, muss ich das ausprobieren. Die Leaks fand ich persönlich um Welten besser als das fertige Spiel, und die Verheißung, das mit moderner Technik kombiniert zu sehen, löst bei mir bloßes Entzücken aus.
Bevor S.T.A.L.K.E.R: Shadow of Chernobyl 2007 erschien, war es 10 Jahre in Entwicklung. Leider war das fertige Produkt eine herbe Enttäuschung und hatte kaum etwas mit der ursprünglichen Version gemein. Die geleakten Alpha-Versionen von 2002–2004 hingegen waren atmosphärisch und technisch Meisterwerke – aber nicht ansatzweise fertig.
The Lost Alpha hatte als Modding-Versuch begonnen, die Inhalte der Alpha-Versionen auf die Technik der Endversion zu übertragen. Das Team hat Unterstützung vom Originalentwicklungsstudio bekommen und so war es möglich, eine unveröffentlichte Engine-Version mit den Quelldaten aus der frühen Entwicklung zu kombinieren. Weil Leaks der Mod auftauchten, sah man sich zu einer frühen Veröffentlichung gezwungen.
Dadurch erklären sich auch technische Besonderheiten: Das Spiel belegt 20 GiB Speicherplatz und verspeist auf höchsten D3D-10-Einstellungen jede GPU zum Frühstück (man ist noch nicht zur Optimierung gekommen). Zugleich steht für weniger starke PCs aber auch der Direct3D-8-Renderer von 2002 zur Verfügung.
Wenn ich mal wieder ein Wochenende frei habe, muss ich das ausprobieren. Die Leaks fand ich persönlich um Welten besser als das fertige Spiel, und die Verheißung, das mit moderner Technik kombiniert zu sehen, löst bei mir bloßes Entzücken aus.
- Schrompf
- Moderator
- Beiträge: 5045
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Python-Skript läuft und gleicht die nunmehr 6 Sprachdateien von Splatter vollautomatisch einander an. Und ich habe endlich mal ne neue Programmiersprache gelernt.
Jetzt muss ich nur noch die englische Übersetzung der geänderten Texte prüfen bzw. machen, dann geht das Ganze ans Lokalisierungsstudio.
Jetzt muss ich nur noch die englische Übersetzung der geänderten Texte prüfen bzw. machen, dann geht das Ganze ans Lokalisierungsstudio.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Aramis
- Moderator
- Beiträge: 1458
- Registriert: 25.02.2009, 19:50
- Echter Name: Alexander Gessler
- Wohnort: 2016
- Kontaktdaten:
Re: Anti-Jammer-Thread
Cool! Welche 6 Sprachen sind es?
- Schrompf
- Moderator
- Beiträge: 5045
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Englisch, Deutsch, Spanisch, Portugiesisch, Polnisch, Russisch. Demnächst mit Hilfe einer Übersetzungsfirma und Geld aus meinem letzten Auftrag auch noch Französisch und Italienisch. Sowie vielleicht nochmal vielleicht 100 Zeilen pro existierender Sprache, die das Tool mir als geändert auswirft.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Die Erläuterung in der Dokumentation von Windows’ Beep()-Funktion beginnt mit
A long time ago, all PC computers […]
Re: Anti-Jammer-Thread
Wieso nimmst du nicht einfach ein grafisches Programm wie poedit?
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
- Aramis
- Moderator
- Beiträge: 1458
- Registriert: 25.02.2009, 19:50
- Echter Name: Alexander Gessler
- Wohnort: 2016
- Kontaktdaten:
Re: Anti-Jammer-Thread
Entropy ist #13 auf Steam Greenlight. Was ueberhaupt nichts zu bedeuten hat, da ja neuerdings monatlich hunderte von Titeln freigegeben wird. Trotzdem nett. Weniger nett: anhaltende Grafikprobleme auf diversen neueren Hardwareboliden. Muesste man mal angehen.
- Schrompf
- Moderator
- Beiträge: 5045
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Komplette Vertonung der Splatter-Dialoge soeben erhalten. Und der Hauptcharacter-Sprecher hat den MaxPayne-Stil voll getroffen. Ich freu mich wie die Sau.
Und nun zurück an die Arbeit, morgen ist Steam-Release. Falls irgendwer morgen tagsüber Zeit für Ach-Du-Schande-Damit-Fängst-Du-Jetzt-Erst-An?-Tests hat, möge er oder sie mich bitte im Skype unter "grmpfant" anschreiben.
Und nun zurück an die Arbeit, morgen ist Steam-Release. Falls irgendwer morgen tagsüber Zeit für Ach-Du-Schande-Damit-Fängst-Du-Jetzt-Erst-An?-Tests hat, möge er oder sie mich bitte im Skype unter "grmpfant" anschreiben.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Wenn ich das zwei, drei Wochenenden früher gewusst hätte :(
————
Schön daran, keine fremden Header zu benutzen, ist, dass man sich seine eigene Sprache zusammen#definen kann.
#define no false
#define yes true
#define local namespace
#define import_from(NAME) __pragma(comment(lib, NAME##".lib")) extern "C"
import_from("User32") SignedInt4B WINAPI_CALL SetCursorPos(int, int);
local {
void cursorPositionIs(ScreenPosition const & position) {
SetCursorPos(position.x, position.y);
}
}
————
Schön daran, keine fremden Header zu benutzen, ist, dass man sich seine eigene Sprache zusammen#definen kann.
#define no false
#define yes true
#define local namespace
#define import_from(NAME) __pragma(comment(lib, NAME##".lib")) extern "C"
import_from("User32") SignedInt4B WINAPI_CALL SetCursorPos(int, int);
local {
void cursorPositionIs(ScreenPosition const & position) {
SetCursorPos(position.x, position.y);
}
}
- Schrompf
- Moderator
- Beiträge: 5045
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Tja, wenn ich das zwei drei Wochen vorher gewusst hätte. Aktuell überschlägt sich halt irgendwie alles. Aber wir kommen trotzdem echt gut vorwärts. Und so richtige Perfektion ist eh unerreichbar.Krishty hat geschrieben:Wenn ich das zwei, drei Wochenenden früher gewusst hätte :(
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Chromanoid
- Moderator
- Beiträge: 4273
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Anti-Jammer-Thread
Ein Bug, den ich vor einiger Zeit durch Zufall gefunden habe :): https://technet.microsoft.com/library/security/ms14-033 Jetzt gibt's ein Update dazu. Leider gab's keine Bounty sondern nur eine Erwähnung...
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Gratulation! Damit bist du AFAIK nach Helmut schon der Zweite von ZFX, der ein Windows-Update ausgelöst hat :)
————
Ich war mit meiner Familie im Wald. Das Unwetter hat etliche Bäume umgeworfen und entwurzelt, und verdammt, kriegt man da schöne Sachen zu Gesicht:
————
Ich war mit meiner Familie im Wald. Das Unwetter hat etliche Bäume umgeworfen und entwurzelt, und verdammt, kriegt man da schöne Sachen zu Gesicht:
- Die oberen 30 cm einer Jahrzehnte alten Tanne haben eine echt außergewöhnliche Struktur. Sehr dunkles festes Holz in der Mitte, dann ein Mantel porösen Holzes drumherum, und unter der Rinde Wurmspuren, die wie Indianermalereien aussehen.
- Überhaupt haben die ganzen zerrissenen Bäume und Äste Holzstrukturen offenbart, die ich in dieser Eleganz nie vermutet hätte.
- Entwurzelte Bäume haben das Erdreich wunderschön aufgefächert, so dass man einen fantastischen Querschnitt durch den Boden erhaschen konnte.
- In den Kronen sehen manche Bäume radikal anders aus als am Stamm – manchmal verblüffend organisch.
- Schlingpflanzen. In den Urwäldern überall. Oh mein Gott. Wir werden Jahrzehnte brauchen bis die Computergrafik so weit ist.
- Durch die Entwurzelungen sind Bäche umgeleitet worden oder neu entstanden. Der frische Sand bildet wunderschöne Dünenmuster im flachen Wasser.
- Birkenrinde fühlt sich nicht nur wie Papier an, sie ist wie Papier. Ich hatte teils DIN A4-große Stücke in der Hand und das Bedürfnis, Papierflieger draus zu basteln.
- Schrompf
- Moderator
- Beiträge: 5045
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Der in GLFW reingehackte Code zum fließenden Wechsel zwischen Vollbild und Fenstermodus funktioniert auf Anhieb. Ich hab Angst.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
-
- Establishment
- Beiträge: 324
- Registriert: 08.04.2003, 18:09
- Alter Benutzername: Enrico_
- Echter Name: Enrico
- Wohnort: San Diego
- Kontaktdaten:
Re: Anti-Jammer-Thread
Cardboard und Project Tango waren definitiv das Beste auf der IO. Die Smartwatch ist schon verkauft :lol: Keine Lust, auch noch ein neues Smartphone zu kaufen :roll:
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Anti-Jammer-Thread
Clang kompiliert mittlerweile nahezu vollständig zu Visual C++ 2013-ABI-kompatiblem Code. Damit fehlen jetzt nur noch Exceptions und Debug-Info, neu seit letztem Jahr sind Layout-Kompatibilität, RTTI-Support, Lambda-Kompatibilität, alle Calling Conventions bis VC++ 2012. Insbesondere heißt das, dass sich bei abgeschalteten Exceptions nun auch die STL bereits vollständig nutzen lassen sollte.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Schrompf
- Moderator
- Beiträge: 5045
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Das ist wirklich mal ne gute Nachricht!
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
-
- Establishment
- Beiträge: 426
- Registriert: 23.01.2013, 15:55
Re: Anti-Jammer-Thread
Gute Nachrichten, aber mir wäre es lieber wenn sie mal Exception implementieren würden.
RTTI oder "std::function" nutze ich schon nicht mehr. ABI Kompatiblität ist nett, würde mir aber kaum etwas nützen. Ich wüste nicht an welcher Stelle ich MSVC Binaries mit LLVM/Clang Binaries verlinken wollte. Ohne Exception geht bei mir aber gar nichts. Und außerdem wäre es ganz nett wenn Libc++ auch mal auf Windows verfügbar werden würde. Wenn ich für Clang kompiliere habe ich nicht vor wieder zur MSVC STL zurückzukehren und an brauchbaren Alternativen mangelt es völlig.
RTTI oder "std::function" nutze ich schon nicht mehr. ABI Kompatiblität ist nett, würde mir aber kaum etwas nützen. Ich wüste nicht an welcher Stelle ich MSVC Binaries mit LLVM/Clang Binaries verlinken wollte. Ohne Exception geht bei mir aber gar nichts. Und außerdem wäre es ganz nett wenn Libc++ auch mal auf Windows verfügbar werden würde. Wenn ich für Clang kompiliere habe ich nicht vor wieder zur MSVC STL zurückzukehren und an brauchbaren Alternativen mangelt es völlig.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Wohl überall, wo du mit Clang kompilierst, aber die Visual C++-CRT benutzt. Was, wenn du Microsofts STL-Header einbindest, immer ist.Spiele Programmierer hat geschrieben:Ich wüste nicht an welcher Stelle ich MSVC Binaries mit LLVM/Clang Binaries verlinken wollte.
-
- Establishment
- Beiträge: 426
- Registriert: 23.01.2013, 15:55
Re: Anti-Jammer-Thread
Ich würde mich auch gerne von Microsoft STL trennen. Ich will nicht auf Clang und dann wieder Microsoft Libs nutzen. Alles oder nichts. Libc++ könnte eine gute Alternative sein, wenn sie auch Windows den schon funktionieren würde. WinAPI ist eine C-Schnittstelle.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Aber nur, wenn du GetProcAddress() benutzt. Fürs statische Einbinden brauchst du dann die .libs aus dem Platform SDK, und die erfordern die Visual C++-ABI.Spiele Programmierer hat geschrieben:WinAPI ist eine C-Schnittstelle.
Außerdem gibt es ab und zu Stellen wie
Und nun erfordert dein Programm die Visual C++-CRT.winbase.h hat geschrieben:#define InterlockedIncrement _InterlockedIncrement
Und mit libc++ funktionieren dann solche Sachen nicht mehr wie, dass der Visual C++-Debugger bei C++-Ausnahmen das Programm anhält. Weil sie Ausnahmebehandlung ein wenig anders implementiert als Microsofts CRT.
Ich versuche auch von Microsofts STL & CRT wegzukommen (schreibe dafür sogar eigene Windows-Header-Kopien), aber verdammt – es ist nunmal nicht einfach. Es ist ein Krampf. Seit Jahren. Ohne Ende in Sicht.
Visual C++ baut die CRT wirklich an jeder Ecke und an jedem Ende ein, und wenn Clang es genau so macht, werden sie zwecks Kompatibilität diese Aufrufe drin lassen müssen. Wenn sie es nicht tun, vermiesen sie sich die Kompatibilität zu Microsoft-Bibliotheken.
Viel mehr Sorgen mache ich mir um den Debugger. Visual C++’ Debugger ist ein riesiges Trägheitsmoment für viele Entwickler (inklusive mir). Ohne Debug-Info und Binärkompatibilität darf ich wieder durch Assembler-Befehle und printf()-Ausgaben wühlen. Neee danke.