Stap 2: Get hoek
Voordat u kunt gaan op je zult moeten installeren Microsofts tak van de hoek-project (https://github.com/MSOpenTech/angle) waarmee u toegang hebt tot OpenGL ES op alle Windows-platforms via een proces van intelligent verpakken van DirectX. De manier die ik aanbevelen een doet dit is toe te voegen als een Git project in Visual Studio. Dit kan je gemakkelijk sync in eventuele nieuwe updates en wijzigingen die u aanbrengt in uw eigen kantoor gemakkelijk duwen waar kun je dan een pull-aanvraag. U kan ook gewoon downloaden van het zip archief en ga vanaf daar. Ik denk dat ze het installatieproces zeer document zelf maar in wezen gaat de installatie dat je moet open het project voor elk platform en vervolgens compileren voor elke configuratie en architectuur (Debug, Release, x 86, x64(on Win Store), ARM). Voor deze tutorial zal u hoeft alleen de binaries van Windows 8.1 en Windows Phone 8.1, niet het bureaublad of op Windows 10 ones. Nadat u hen allen die u zult moeten uitvoeren van het install script in de bronmap hebben samengesteld. Dit zal uw omgevingsvariabelen instellen zodat de VS weet waar te vinden van de hoek binaries en headers.
Nu zullen we enkele macro's maken die zullen bepalen waar de hoek is geïnstalleerd. Begin door te gaan naar de "beheerder", je kunt er komen met behulp van het zoekvak in de rechterbovenhoek. Dus nu met de rechtermuisknop op het Windows-project en selecteer "Toevoegen nieuwe eigenschap blad..." Noem het "Hoek". Nu openen door erop te dubbelklikken in elke configuratie. Tot slot ga naar gebruiker macro's en voeg "AngleBinPath" en "AngleIncPath". De "Bin" één moet verwijzen naar "$(AngleRootPath) \winrt\8.1\windows\src\$ (configuratie) _ $(Platform) \" en de "Inc" een op "$(AngleRootPath) \include\". Zorg ervoor om de Macro voor de build-omgeving. Hetzelfde voor de Windows Phone-project, maar ditmaal gebruik gewoon "$(AngleRootPath) \winrt\8.1\windowsphone\src\$ (configuratie) _ $(Platform) \" in plaats van "$(AngleRootPath) \winrt\8.1\windows\src\$ (configuratie) _ $(Platform) \". De relatief pad blijft hetzelfde.
Nu hebben we de macro's moeten we de include mappen toevoegen aan het project, evenals de bibliotheken die de linker moet koppelen aan. Dus doe het volgende in het eigenschappenvenster van zowel de Win en WP projecten. Aan de linkerkant zal u een "Linker" groep zien en daarop een 'Input' pagina. Open het en prepend "$(AngleBinPath) lib\libGLESv2.lib;$ (AngleBinPath) lib\libEGL.lib;" het veld "Extra afhankelijkheden". Ook gaat u naar "C/C++" en vervolgens "generaal". Hier moet je prepend "$(AngleIncPath);" naar de "Extra omvatten Directories" veld. Dit is één eigenschappenpagina, u hoeft alleen te doen dit op een configuratie en het zal toegepast in de gehele. Vergeet niet om precies hetzelfde doen met de eigenschappenpagina Windows Phone.
Vervolgens moeten we de dll-bestanden toevoegen aan de C# projecten. Dit werkt helaas manier die ik vinden kon om ze gekopieerd naar de map van de runtime en zonder hen er krijg je een heleboel fouten. Dus voor de overwinning én de WP C# toevoegen projecten libEGL.dll en libGLESv2.dll als bestaande bestanden. Laat ze geconfigureerd als "Build Action" "Inhoud" en "Copy to Output Directory" "Kopieer niet". Het maakt niet uit welke dll's u kiest nu omdat wij hun paden later bij automatisch veranderen zal wijs de juiste bestanden (we nodig een andere naam voor elke configuratie). Dus zodra u hen, open de map waarin uw project is. We willen nu het Windows .csproj bestand niet vinden en openen met Kladblok. Vergeet niet om alles gewoon opslaan alvorens dit te doen. Nu moet u zoeken naar de locatie waar de opname van de DLL's is aangegeven.
Vervangen:
<Content Include="libGLESv2.dll" /><br><Content Include="libEGL.dll" />
Met:
<Content Condition="'$(Platform)' == 'x86'" Include="$(AngleRootPath)\winrt\8.1\windows\src\$(Configuration)_Win32\libGLESv2.dll" /><br><Content Condition="'$(Platform)' == 'x86'" Include="$(AngleRootPath)\winrt\8.1\windows\src\$(Configuration)_Win32\libEGL.dll" /> <Content Condition="'$(Platform)' != 'x86'" Include="$(AngleRootPath)\winrt\8.1\windows\src\$(Configuration)_$(Platform)\libGLESv2.dll" /> <Content Condition="'$(Platform)' != 'x86'" Include="$(AngleRootPath)\winrt\8.1\windows\src\$(Configuration)_$(Platform)\libEGL.dll" />
De reden dat we moeten dit ingewikkeld voorwaarde gebaseerde verklaring is omdat het platform bekend dat C# als x86 is bekend dat C++ als "Win32". Gelukkig de rest van de platforms dezelfde naam hebben...
Na dit te doen, precies hetzelfde doen voor de Windows Phone-project (maar de "windows" na 8.1 moet nu worden "windowsphone" en ga dan terug naar Visual Studio. VS moeten vragen als u wilt dat bestanden worden geladen, gewoon zeggen alle herladen. En uw dll-bestanden moeten nu automatisch de juiste versies tijdens het compileren. U kunt het verwijderen van de DLL's die aanvankelijk zijn gekopieerd naar de projectmappen van uw Explorer gebruikt zoals ze nu zijn ongebruikt.
Vervolgens kunt u de verwijzingen naar de runtime-onderdelen gewoon toevoegen in uw C# projecten. Zorg ervoor dat het gebruik van de WP een voor het WP-project en de overwinning een voor het Win-project.
Voordat je verder gaat zou ik adviseren u controleren en zien of je nog kunt compileren en implementeren van de toepassing. Herinner me enkel om te kiezen van een architectuur zoals x86 of ARM, aangezien "Om het even welke CPU" fouten met de inheemse bibliotheken zal geven. Als alles boete werkt moet u een lege toepassing starten.