{"title":"Vulkan in C# for Multi-Platform Real- Time Graphics","authors":"Dávid Szabó, Z. Illés","doi":"10.1109/ICETA51985.2020.9379169","DOIUrl":null,"url":null,"abstract":"Nowadays almost every computer device contains a graphics processor. Large desktop PCs have dedicated graphics cards, laptops and even mobiles have integrated graphics units inside the CPU. To use and program these graphics units we need special libraries, the Graphics APIs. Usually these APIs are made in C or C++ to ensure low-level capabilities and high performance. In the meantime, the .NET supported C# language evolved greatly in the past years. C# is now a fast, powerful and multi-platform language. [1] The main goal of our research is the merging of these two worlds: We're examining the possibilities of the real-time graphical programming in .NET C# using the modern Vulkan graphics API. This paper presents methods of creating multi-platform real-time graphical libraries using Vulkan in .NET C#. We provide solutions for rendering onto common .NET UI frameworks with Vulkan and techniques for dealing with the low-level memory management required by the API. Furthermore, we determine the functional and performance differences between multiple runtimes and compilers.","PeriodicalId":149716,"journal":{"name":"2020 18th International Conference on Emerging eLearning Technologies and Applications (ICETA)","volume":"33 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-11-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 18th International Conference on Emerging eLearning Technologies and Applications (ICETA)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICETA51985.2020.9379169","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
Abstract
Nowadays almost every computer device contains a graphics processor. Large desktop PCs have dedicated graphics cards, laptops and even mobiles have integrated graphics units inside the CPU. To use and program these graphics units we need special libraries, the Graphics APIs. Usually these APIs are made in C or C++ to ensure low-level capabilities and high performance. In the meantime, the .NET supported C# language evolved greatly in the past years. C# is now a fast, powerful and multi-platform language. [1] The main goal of our research is the merging of these two worlds: We're examining the possibilities of the real-time graphical programming in .NET C# using the modern Vulkan graphics API. This paper presents methods of creating multi-platform real-time graphical libraries using Vulkan in .NET C#. We provide solutions for rendering onto common .NET UI frameworks with Vulkan and techniques for dealing with the low-level memory management required by the API. Furthermore, we determine the functional and performance differences between multiple runtimes and compilers.