-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathEffectDesignerWindow.xaml
More file actions
137 lines (128 loc) · 7.06 KB
/
Copy pathEffectDesignerWindow.xaml
File metadata and controls
137 lines (128 loc) · 7.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<Window
x:Class="ShaderLab.EffectDesignerWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Effect Designer">
<Grid Padding="12" RowSpacing="8">
<Grid.RowDefinitions>
<RowDefinition Height="2*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- Row 0: Scrollable settings (name, inputs, params, compute) -->
<ScrollViewer Grid.Row="0"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled">
<StackPanel Spacing="8">
<!-- Name and Type -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="Effect Name:" VerticalAlignment="Center" Margin="0,0,8,0" />
<TextBox x:Name="EffectNameBox" Grid.Column="1" PlaceholderText="My Custom Effect" />
<TextBlock Text="Type:" Grid.Column="2" VerticalAlignment="Center" Margin="16,0,8,0" />
<ComboBox x:Name="ShaderTypeSelector" Grid.Column="3" MinWidth="180">
<x:String>Pixel Shader</x:String>
<x:String>Compute Shader</x:String>
<x:String>D3D11 Compute Shader</x:String>
</ComboBox>
</Grid>
<!-- Inputs -->
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="Inputs" FontWeight="SemiBold" VerticalAlignment="Center" />
<Button x:Name="AddInputButton" Grid.Column="1" Content="+ Add Input" />
</Grid>
<StackPanel x:Name="InputsPanel" Spacing="4" Margin="0,4,0,0" />
</StackPanel>
<!-- Parameters -->
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="Parameters" FontWeight="SemiBold" VerticalAlignment="Center" />
<Button x:Name="AddParamButton" Grid.Column="1" Content="+ Add Parameter" />
</Grid>
<StackPanel x:Name="ParamsPanel" Spacing="4" Margin="0,4,0,0" />
</StackPanel>
<!-- Compute Settings + Analysis Outputs -->
<StackPanel x:Name="ComputeSettingsPanel" Visibility="Collapsed" Spacing="8">
<StackPanel Orientation="Horizontal" Spacing="8">
<TextBlock Text="Thread Group:" VerticalAlignment="Center" />
<NumberBox x:Name="ThreadGroupX" Value="8" Minimum="1" Maximum="1024"
SpinButtonPlacementMode="Compact" Width="80" />
<TextBlock Text="×" VerticalAlignment="Center" />
<NumberBox x:Name="ThreadGroupY" Value="8" Minimum="1" Maximum="1024"
SpinButtonPlacementMode="Compact" Width="80" />
<TextBlock Text="×" VerticalAlignment="Center" />
<NumberBox x:Name="ThreadGroupZ" Value="1" Minimum="1" Maximum="64"
SpinButtonPlacementMode="Compact" Width="80" />
<AppBarSeparator />
<TextBlock Text="Output:" VerticalAlignment="Center" />
<ComboBox x:Name="OutputTypeSelector" MinWidth="100">
<x:String>None</x:String>
<x:String>Histogram</x:String>
<x:String>Float Buffer</x:String>
<x:String>Typed Analysis</x:String>
</ComboBox>
</StackPanel>
<StackPanel x:Name="AnalysisFieldsSection" Visibility="Collapsed">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="Analysis Output Fields" FontWeight="SemiBold"
VerticalAlignment="Center" />
<Button x:Name="AddAnalysisFieldButton" Grid.Column="1"
Content="+ Add Field" />
</Grid>
<StackPanel x:Name="AnalysisFieldsPanel" Spacing="4" Margin="0,4,0,0" />
</StackPanel>
</StackPanel>
</StackPanel>
</ScrollViewer>
<!-- Row 1: Action buttons (always visible between settings and editor) -->
<StackPanel Grid.Row="1" Orientation="Horizontal" Spacing="8">
<Button x:Name="GenerateScaffoldButton" Content="Generate Scaffold"
Style="{StaticResource AccentButtonStyle}" />
<Button x:Name="CompileButton" Content="Compile (Ctrl+Enter)" />
<Button x:Name="FormatButton" Content="Format" />
<Button x:Name="AddToGraphButton" Content="Add to Graph" IsEnabled="False" />
<Button x:Name="UpdateInGraphButton" Content="Update in Graph" IsEnabled="False"
Visibility="Collapsed" />
</StackPanel>
<!-- Row 2: HLSL Editor -->
<TextBox x:Name="HlslEditorBox" Grid.Row="2"
AcceptsReturn="True"
TextWrapping="NoWrap"
FontFamily="Cascadia Mono, Consolas, Courier New"
FontSize="13"
PlaceholderText="// Click 'Generate Scaffold' to create HLSL boilerplate..."
IsSpellCheckEnabled="False"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto" />
<!-- Row 3: Status bar -->
<Grid Grid.Row="3" Padding="4"
Background="{ThemeResource CardBackgroundFillColorSecondaryBrush}"
CornerRadius="4">
<TextBlock x:Name="CompileStatusText"
Text="Ready"
FontFamily="Cascadia Mono, Consolas, Courier New"
FontSize="12"
TextWrapping="Wrap"
MaxLines="5" />
</Grid>
</Grid>
</Window>