Forum: Cross-Platform-Entwicklung
by CHackbart,
26. Mai 2018
Für Spiele ist der nicht gedacht. Vor knapp 20 Jahren (junge bin ich alt), habe ich einen ZX Spectrum Emulator für DOS geschrieben. Den gibt es im Quellcode noch irgendwo unter worldofspectrum.org oder zophar.net.
Vor einiger Zeit wollte ich den Code portieren und unter MacOS bzw. iOS und Android zum laufen kriegen. Nun schaut ein 320x256 Bild etwas komisch auf einem 4k Display aus und da lag...
Forum: Cross-Platform-Entwicklung
by CHackbart,
23. Mai 2018
Ja das geht mittlerweile sogar richtig gut. Ich habe noch eine TMaterialSource Klasse erstellt, damit man das auch auf einem 3d Objekt nutzen kann. Das Problem übrigens war, dass ich Float benutzt habe, richtig ist aber TContextShaderVariableKind.Matrix, dann klappt es auch unter GLSL.
Anbei mal der "finale" Code des Effektfilters. Das ganze sieht nach mehr aus, als es ist. Der Großteil ist...
Forum: Cross-Platform-Entwicklung
by CHackbart,
23. Mai 2018
Anbei mal der komplette Quellcode des Projekts. Die DX9 und DX11 Pixelshader funktionieren in Kombination mit dem TCRTFilter. Einfach den Effekt einem FMX Objekt zuweisen und schon wird die Anzeige "aufgehübscht".
Für die Konvertierung des DX9 Shaders nach GLSL habe ich den Konverter von Nvidia benutzt: http://developer.nvidia.com/cg-toolkit
Was aber nicht funktioniert ist, die Übergabe der...
Forum: Cross-Platform-Entwicklung
by CHackbart,
23. Mai 2018
Danke,
das hatte ich in der Form auch schon:
Texture2D GTexture : register(t0);
SamplerState s0 : register(s0);
float4 p0 : register(c0);
float4 p1 : register(c1);
Forum: Cross-Platform-Entwicklung
by CHackbart,
23. Mai 2018
Hallo,
ich versuche gerade für ein Open Source Projekt einen Effektfilter zu schreiben und Delphi schmeisst da ein paar kleinere Steine in den Weg. Das kleinere Problem ist, die Anzeige unter Windows zu Testzwecken auf DX9 zu stellen. Dafür musste ich in FMX.Context.DX11 die RegisterContext Funktion deaktivieren. Da es nur zum Testen des Shaders ist, ist das okay. Leider gibt es keinen anderen...