コード例 #1
0
ファイル: YALCTShaderResource.cs プロジェクト: Calebsem/YALCT
 public YALCTShaderResource(YALCTFilePickerItem fileItem, Vector2 size, IntPtr imguiBinding)
 {
     UID          = Guid.NewGuid().ToString("N");
     Name         = fileItem.Name;
     FileItem     = fileItem;
     Size         = size;
     ImguiBinding = imguiBinding;
 }
コード例 #2
0
ファイル: ShaderEditor.cs プロジェクト: Calebsem/YALCT
 public void LoadShader(string path, string shaderContent)
 {
     Controller.Context.DisposeTextures();
     string[] shaderParts = shaderContent.Split("*///");
     if (shaderParts.Length > 1)
     {
         try
         {
             string metadataJson = shaderParts[0].Skip(2).ToSystemString();
             shaderMetadata = JsonConvert.DeserializeObject <YALCTShaderMetadata>(metadataJson);
             if (shaderMetadata.ResourcePaths != null)
             {
                 for (int i = 0; i < shaderMetadata.ResourcePaths.Length; i++)
                 {
                     // get absolute path
                     YALCTFilePickerItem item            = shaderMetadata.ResourcePaths[i];
                     YALCTFilePickerItem transformedItem = item;
                     transformedItem.FullPath        = Path.Combine(path, item.FullPath);
                     shaderMetadata.ResourcePaths[i] = transformedItem;
                     Controller.Context.LoadTexture(transformedItem);
                 }
             }
             fragmentCode = shaderParts[1].Trim('\r', '\n');
         }
         catch
         {
             // no metadata found, just load the entire code
             LoadShaderDefault(shaderContent);
         }
     }
     else
     {
         LoadShaderDefault(shaderContent);
     }
     SplitLines();
     Apply();
 }
コード例 #3
0
ファイル: RuntimeContext.cs プロジェクト: Calebsem/YALCT
 public bool LoadTexture(YALCTFilePickerItem item)
 {
     try
     {
         ImageSharpTexture imageSharpTex = new ImageSharpTexture(item.FullPath);
         Texture           texture       = imageSharpTex.CreateDeviceTexture(graphicsDevice, factory);
         TextureView       textureView   = factory.CreateTextureView(texture);
         textureView.Name = item.Name;
         // as per https://github.com/mellinoe/veldrid/issues/188
         TextureView imguiTextureView = factory.CreateTextureView(new TextureViewDescription(texture, PixelFormat.R8_G8_B8_A8_UNorm_SRgb));
         imguiTextureView.Name = item.Name;
         IntPtr imguiBinding = imGuiRenderer.GetOrCreateImGuiBinding(factory, imguiTextureView);
         textures.Add(texture);
         textureViews.Add(textureView);
         imguiTextureViews.Add(imguiTextureView);
         imguiTextures.Add(new YALCTShaderResource(item, new Vector2(texture.Width, texture.Height), imguiBinding));
     }
     catch (Exception e)
     {
         uiController.SetError(e.Message);
         return(false);
     }
     return(true);
 }