]> O.S.I.I.S - jp/crow.git/commitdiff
tutorial examples
authorjp <jp_bruyere@hotmail.com>
Sat, 23 Jul 2016 09:42:41 +0000 (11:42 +0200)
committerjp <jp_bruyere@hotmail.com>
Sat, 23 Jul 2016 09:52:25 +0000 (11:52 +0200)
16 files changed:
Crow.OpenTK.nuspec
Crow.csproj
Templates/Window.goml
Tests/BasicTests.cs [new file with mode: 0644]
Tests/GOLIBTestsOTK.cs [deleted file]
Tests/HelloCube.cs [new file with mode: 0644]
Tests/HelloWorld.cs [new file with mode: 0644]
Tests/Interfaces/Divers/welcome.crow [new file with mode: 0644]
Tests/OTKCrow.cs [deleted file]
Tests/OpenGL/Shader.cs
Tests/OpenGL/Texture.cs [new file with mode: 0644]
Tests/OpenGL/vaoMesh.cs
Tests/OpenTKGameWindow.cs
Tests/Tests.csproj
Tests/image/textest.png [new file with mode: 0755]
Tests/ui/test.crow

index af071203ded01640fdaf31c6be68e9d9f66d7fd1..7bc582403d96e8204bec751e26500b8cccb03e16 100644 (file)
@@ -2,8 +2,8 @@
 <package >
        <metadata>
                <id>Crow.OpenTK</id>
-               <version>0.4.1</version>
-               <title>C# Rapid Widget Toolkit</title>
+               <version>0.4.3</version>
+               <title>C# Rapid Open Widget Toolkit</title>
                <authors>JP Bruyere</authors>
                <owners>Grand Tetras Software Team</owners>
                <licenseUrl>https://www.gnu.org/licenses/gpl-3.0.html</licenseUrl>
                <iconUrl>https://jpbruyere.github.io/Crow/images/crow.png</iconUrl>
                <requireLicenseAcceptance>false</requireLicenseAcceptance>
                <description>
-               CROW is a pure C# widget toolkit with templates, styles, compositing, and bindings.
-               Crow.OpenTK is the OpenTK ready version.
+CROW is a pure C# widget toolkit with templates, styles, compositing, and bindings.
+Crow.OpenTK is the OpenTK ready version.
+This package depends on a pre-release OpenTK version, ensure pre-release packages are visible in your nuget client when adding Crow package.
                </description>
-               <releaseNotes>Beta release, minimal OpenTK implementation.</releaseNotes>
+               <summary>
+CROW is a pure C# widget toolkit with templates, styles, compositing, and bindings.
+Crow.OpenTK is the OpenTK ready version.
+
+For more information, please visit https://jpbruyere.github.io/Crow/.
+               </summary>
+               <releaseNotes>pre-alpha release, minimal OpenTK implementation.</releaseNotes>
                <copyright>Copyright 2016</copyright>
                <dependencies>
                        <dependency id="OpenTK.Next" version="1.2" />
index 72e52fed63b821245eb3dc5462101e8ba3bf0b78..68f67ca6b67a4e7af814eb14c49c4959788627c4 100644 (file)
     <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
     <NoStdLib>False</NoStdLib>
     <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
-    <OutputPath>$(SolutionDir)/build/$(Configuration)</OutputPath>
-    <IntermediateOutputPath>$(SolutionDir)/build/obj/$(Configuration)</IntermediateOutputPath>
     <WarningLevel>4</WarningLevel>
     <NoWin32Manifest>False</NoWin32Manifest>
     <SignAssembly>false</SignAssembly>
     <DelaySign>False</DelaySign>
     <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
     <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <Description>Crow project description</Description>
+    <Description>C# Rapid Open Widget</Description>
     <BaseAddress>4194304</BaseAddress>
     <ReleaseVersion>0.4</ReleaseVersion>
     <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
+       <SchemaVersion>2.0</SchemaVersion>
+       <OutputPath>$(SolutionDir)/build/$(Configuration)</OutputPath>
+       <IntermediateOutputPath>$(SolutionDir)/build/obj/$(Configuration)</IntermediateOutputPath>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
     <DefineConstants>__linux__;MEASURE_TIME</DefineConstants>
   </PropertyGroup>
   <ItemGroup>
-    <Compile Include="src\Colors.cs" />
-    <Compile Include="src\Point.cs" />
-    <Compile Include="src\Rectangle.cs" />
-    <Compile Include="src\Rectangles.cs" />
-    <Compile Include="src\Size.cs" />
-    <Compile Include="src\GraphicObjects\GraphicObject.cs" />
-    <Compile Include="src\GraphicObjects\Container.cs" />
-    <Compile Include="src\GraphicObjects\Group.cs" />
-    <Compile Include="src\GraphicObjects\HorizontalStack.cs" />
-    <Compile Include="src\GraphicObjects\Image.cs" />
-    <Compile Include="src\GraphicObjects\Label.cs" />
-    <Compile Include="src\GraphicObjects\TextBox.cs" />
-    <Compile Include="src\GraphicObjects\ProgressBar.cs" />
-    <Compile Include="src\GraphicObjects\VerticalStack.cs" />
-    <Compile Include="src\Cairo\CairoHelpers.cs" />
-    <Compile Include="src\win32\Win32.cs" />
-    <Compile Include="src\win32\winApi.cs" />
-    <Compile Include="src\GraphicObjects\Button.cs" />
-    <Compile Include="src\GraphicObjects\GraduatedSlider.cs" />
-    <Compile Include="src\GraphicObjects\Slider.cs" />
-    <Compile Include="src\GraphicObjects\NumericControl.cs" />
-    <Compile Include="src\GraphicObjects\Scroller.cs" />
-    <Compile Include="src\GraphicObjects\ILayoutable.cs" />
-    <Compile Include="src\Enums.cs" />
-    <Compile Include="src\GraphicObjects\GenericStack.cs" />
-    <Compile Include="src\CompilerServices\CompilerServices.cs" />
-    <Compile Include="src\GraphicObjects\AnalogMeter.cs" />
-    <Compile Include="src\GraphicObjects\Border.cs" />
-    <Compile Include="src\Font.cs" />
-    <Compile Include="src\GraphicObjects\Window.cs" />
-    <Compile Include="src\GraphicObjects\ListBox.cs" />
-    <Compile Include="src\ExtensionsMethods.cs" />
-    <Compile Include="src\Interface.cs" />
-    <Compile Include="src\LayoutingQueueItem.cs" />
-    <Compile Include="src\GraphicObjects\Spinner.cs" />
-    <Compile Include="src\DynAttribute.cs" />
-    <Compile Include="src\GraphicObjects\IValueChange.cs" />
-    <Compile Include="src\Picture.cs" />
-    <Compile Include="src\SvgPicture.cs" />
-    <Compile Include="src\BmpPicture.cs" />
-    <Compile Include="src\GraphicObjects\TemplatedControl.cs" />
-    <Compile Include="src\GraphicObjects\RadioButton.cs" />
-    <Compile Include="src\GraphicObjects\Expandable.cs" />
-    <Compile Include="src\GraphicObjects\PrivateContainer.cs" />
-    <Compile Include="src\GraphicObjects\TemplatedContainer.cs" />
-    <Compile Include="src\GraphicObjects\Popper.cs" />
-    <Compile Include="src\TextChangeEventArgs.cs" />
-    <Compile Include="src\ReflexionExtensions.cs" />
-    <Compile Include="src\XCursor.cs" />
-    <Compile Include="src\GraphicObjects\Grid.cs" />
-    <Compile Include="src\GraphicObjects\TextRun.cs" />
-    <Compile Include="src\GraphicObjects\MessageBox.cs" />
-    <Compile Include="src\SelectionChangeEventArgs.cs" />
-    <Compile Include="src\ValueChangeEventArgs.cs" />
-    <Compile Include="src\GraphicObjects\FileDialog.cs" />
-    <Compile Include="src\GraphicObjects\CheckBox.cs" />
-    <Compile Include="src\GraphicObjects\ComboBox.cs" />
-    <Compile Include="src\GraphicObjects\GroupBox.cs" />
-    <Compile Include="src\GraphicObjects\ScrollBar.cs" />
-    <Compile Include="src\BubblingMouseButtonEventArgs.cs" />
-    <Compile Include="src\SolidColor.cs" />
-    <Compile Include="src\Gradient.cs" />
-    <Compile Include="src\Fill\Fill.cs" />
-    <Compile Include="src\LayoutingEventArgs.cs" />
-    <Compile Include="src\ScrollingEventArgs.cs" />
-    <Compile Include="src\GraphicObjects\Trend.cs" />
-    <Compile Include="src\GraphicObjects\Splitter.cs" />
-    <Compile Include="src\GraphicObjects\TreeView.cs" />
-    <Compile Include="src\GraphicObjects\TabView.cs" />
-    <Compile Include="src\GraphicObjects\TabItem.cs" />
-    <Compile Include="src\GraphicObjects\DummyTemplate.cs" />
-    <Compile Include="src\Input\KeyboardKeyEventArgs.cs" />
-    <Compile Include="src\Input\Buttons.cs" />
-    <Compile Include="src\Input\ButtonState.cs" />
-    <Compile Include="src\Input\Key.cs" />
-    <Compile Include="src\Input\KeyboardState.cs" />
-    <Compile Include="src\Input\KeyModifiers.cs" />
-    <Compile Include="src\Input\MouseButton.cs" />
-    <Compile Include="src\Input\MouseEventArgs.cs" />
-    <Compile Include="src\Input\MouseScroll.cs" />
-    <Compile Include="src\Input\MouseState.cs" />
-    <Compile Include="src\rsvg\DimensionData.cs" />
-    <Compile Include="src\rsvg\Global.cs" />
-    <Compile Include="src\rsvg\Handle.cs" />
-    <Compile Include="src\rsvg\Pixbuf.cs" />
-    <Compile Include="src\rsvg\RsvgSharp.SizeFuncNative.cs" />
-    <Compile Include="src\rsvg\SizeFunc.cs" />
-    <Compile Include="src\MouseCursorChangedEventArgs.cs" />
-    <Compile Include="src\GraphicObjects\IBindable.cs" />
-    <Compile Include="src\Input\KeyPressEventArgs.cs" />
-    <Compile Include="src\Configuration.cs" />
-    <Compile Include="src\Measure.cs" />
-    <Compile Include="src\CompilerServices\MemberReference.cs" />
-    <Compile Include="src\CompilerServices\Bindings.cs" />
+    <Compile Include="src\Colors.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Point.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Rectangle.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Rectangles.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Size.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\GraphicObject.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Container.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Group.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\HorizontalStack.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Image.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Label.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\TextBox.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\ProgressBar.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\VerticalStack.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Cairo\CairoHelpers.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\win32\Win32.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\win32\winApi.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Button.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\GraduatedSlider.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Slider.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\NumericControl.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Scroller.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\ILayoutable.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Enums.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\GenericStack.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\CompilerServices\CompilerServices.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\AnalogMeter.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Border.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Font.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Window.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\ListBox.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\ExtensionsMethods.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Interface.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\LayoutingQueueItem.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Spinner.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\DynAttribute.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\IValueChange.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Picture.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\SvgPicture.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\BmpPicture.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\TemplatedControl.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\RadioButton.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Expandable.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\PrivateContainer.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\TemplatedContainer.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Popper.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\TextChangeEventArgs.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\ReflexionExtensions.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\XCursor.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Grid.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\TextRun.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\MessageBox.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\SelectionChangeEventArgs.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\ValueChangeEventArgs.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\FileDialog.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\CheckBox.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\ComboBox.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\GroupBox.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\ScrollBar.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\BubblingMouseButtonEventArgs.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\SolidColor.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Gradient.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Fill\Fill.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\LayoutingEventArgs.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\ScrollingEventArgs.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Trend.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\Splitter.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\TreeView.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\TabView.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\TabItem.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\DummyTemplate.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Input\KeyboardKeyEventArgs.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Input\Buttons.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Input\ButtonState.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Input\Key.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Input\KeyboardState.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Input\KeyModifiers.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Input\MouseButton.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Input\MouseEventArgs.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Input\MouseScroll.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Input\MouseState.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\rsvg\DimensionData.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\rsvg\Global.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\rsvg\Handle.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\rsvg\Pixbuf.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\rsvg\RsvgSharp.SizeFuncNative.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\rsvg\SizeFunc.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\MouseCursorChangedEventArgs.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\GraphicObjects\IBindable.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Input\KeyPressEventArgs.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Configuration.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\Measure.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\CompilerServices\MemberReference.cs">
+      <LogicalName></LogicalName>
+    </Compile>
+    <Compile Include="src\CompilerServices\Bindings.cs">
+      <LogicalName></LogicalName>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
     <Reference Include="System" />
     <Reference Include="System.Xml" />
     <Reference Include="Microsoft.CSharp" />
     <Reference Include="System.Drawing" />
+    <Reference Include="atk-sharp">
+      <HintPath>packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\atk-sharp.dll</HintPath>
+    </Reference>
     <Reference Include="cairo-sharp">
-      <HintPath>$(SolutionDir)packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\cairo-sharp.dll</HintPath>
-      <Package>gtk-sharp-3.0</Package>
+      <HintPath>packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\cairo-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="gdk-sharp">
+      <HintPath>packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gdk-sharp.dll</HintPath>
     </Reference>
     <Reference Include="gio-sharp">
-      <HintPath>$(SolutionDir)packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gio-sharp.dll</HintPath>
-      <Package>gio-sharp-3.0</Package>
+      <HintPath>packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gio-sharp.dll</HintPath>
     </Reference>
     <Reference Include="glib-sharp">
-      <HintPath>$(SolutionDir)packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\glib-sharp.dll</HintPath>
-      <Package>glib-sharp-3.0</Package>
+      <HintPath>packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\glib-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="gtk-dotnet">
+      <HintPath>packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gtk-dotnet.dll</HintPath>
+    </Reference>
+    <Reference Include="gtk-sharp">
+      <HintPath>packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gtk-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="pango-sharp">
+      <HintPath>packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\pango-sharp.dll</HintPath>
     </Reference>
-       <Reference Include="gdk-sharp">
-               <HintPath>$(SolutionDir)packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gdk-sharp.dll</HintPath>
-               <Package>gtk-sharp-3.0</Package>
-       </Reference>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Import Project="packages\gtk-sharp.Linux.3.14.3.14.7\build\net40\gtk-sharp.Linux.3.14.targets" Condition="Exists('packages\gtk-sharp.Linux.3.14.3.14.7\build\net40\gtk-sharp.Linux.3.14.targets')" />
     <EmbeddedResource Include="Images\Icons\crow.svg" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="README.md" />
+    <None Include="README.md">
+      <LogicalName></LogicalName>
+    </None>
   </ItemGroup>
 </Project>
index 3acb51abe2aa04b05d868ce33b1718a395b30c64..5ce4347c1b977c9034a5d41593fede79f97c8868 100755 (executable)
@@ -4,7 +4,7 @@
                                MouseLeave="../onBorderMouseLeave">
        <VerticalStack Height="{../../HeightPolicy}" Width="{../../WidthPolicy}">
                <Border Name="TitleBar" BorderWidth="1" Foreground="White" Width="{../../../WidthPolicy}" Height="Fit"
-                               Background="vgradient|0:0,1;0,5;1,0;0,5|1:0,0;0,1;0,3;0,9">
+                               Background="vgradient|0:0,4;0,6;0,0;0,5|1:0,0;0,8;0,8;0,9">
                        <HorizontalStack Name="hs" Margin="1" Spacing="1" Width="{../../../../WidthPolicy}" Height="Fit" 
                                >
                                <GraphicObject Width="5"/>
diff --git a/Tests/BasicTests.cs b/Tests/BasicTests.cs
new file mode 100644 (file)
index 0000000..e194bc8
--- /dev/null
@@ -0,0 +1,137 @@
+using System;
+using Crow;
+using System.Collections.Generic;
+using System.Linq;
+using System.IO;
+
+
+namespace Tests
+{
+       class BasicTests : OpenTKGameWindow
+       {
+               public BasicTests ()
+                       : base(800, 600,"test: press spacebar to toogle test files")
+               {
+               }
+
+               int idx = 0;
+               string[] testFiles;
+
+               #region Test values for Binding
+               public int intValue = 25;
+
+               public int IntValue {
+                       get {
+                               return intValue;
+                       }
+                       set {
+                               intValue = value;
+                               NotifyValueChanged ("IntValue", intValue);
+                       }
+               }
+               void onSpinnerValueChange(object sender, ValueChangeEventArgs e){
+                       if (e.MemberName != "Value")
+                               return;
+                       intValue = Convert.ToInt32(e.NewValue);
+               }
+               void change_alignment(object sender, EventArgs e){
+                       RadioButton rb = sender as RadioButton;
+                       if (rb == null)
+                               return;
+                       NotifyValueChanged ("alignment", Enum.Parse(typeof(Alignment), rb.Caption));
+               }
+               public IList<String> List2 = new List<string>(new string[]
+                       {
+                               "string1",
+                               "string2",
+                               "string3",
+                               "string4",
+                               "string5",
+                               "string6",
+                               "string7",
+                               "string8",
+                               "string8",
+                               "string8",
+                               "string8",
+                               "string8",
+                               "string8",
+                               "string9"
+                       }
+               );
+               IList<Color> testList = Color.ColorDic.ToList();
+               public IList<Color> TestList {
+                       set{
+                               testList = value;
+                               NotifyValueChanged ("TestList", testList);
+                       }
+                       get { return testList; }
+               }
+               #endregion
+
+               void OnClear (object sender, MouseButtonEventArgs e) => TestList = null;
+
+               void OnLoadList (object sender, MouseButtonEventArgs e) => TestList = Color.ColorDic.ToList();
+
+               protected override void OnLoad (EventArgs e)
+               {
+                       base.OnLoad (e);
+
+                       KeyboardKeyDown += GOLIBTests_KeyboardKeyDown1;
+
+
+                       testFiles = new string [] { @"Interfaces/Divers/welcome.crow" };
+                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/GraphicObject", "*.crow")).ToArray ();
+                       //testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/basicTests", "*.crow")).ToArray ();
+                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Container", "*.crow")).ToArray ();
+                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Group", "*.crow")).ToArray ();
+                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Stack", "*.crow")).ToArray ();
+                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Splitter", "*.crow")).ToArray ();
+                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Expandable", "*.crow")).ToArray ();
+                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Divers", "*.crow")).ToArray ();
+
+                       this.Title = testFiles [idx] + ". Press key to switch example.";
+                       CrowInterface.LoadInterface(testFiles[idx]).DataSource = this;
+               }
+               void GOLIBTests_KeyboardKeyDown1 (object sender, OpenTK.Input.KeyboardKeyEventArgs e)
+               {
+                       if (e.Key == OpenTK.Input.Key.Escape) {
+                               Quit (null, null);
+                               return;
+                       } else if (e.Key == OpenTK.Input.Key.L) {
+                               TestList.Add ("new string");
+                               NotifyValueChanged ("TestList", TestList);
+                               return;
+                       } else if (e.Key == OpenTK.Input.Key.W) {
+                               GraphicObject w = CrowInterface.LoadInterface("Interfaces/testWindow.goml");
+                               w.DataSource = this;
+                               return;
+                       }
+                       CrowInterface.ClearInterface ();
+                       idx++;
+                       if (idx == testFiles.Length)
+                               idx = 0;
+                       this.Title = testFiles [idx] + ". Press key to cycle examples.";
+                       GraphicObject obj = CrowInterface.LoadInterface(testFiles[idx]);
+                       obj.DataSource = this;
+               }
+
+               void onButClick(object send, MouseButtonEventArgs e)
+               {
+                       Console.WriteLine ("button clicked:" + send.ToString());
+               }
+               void onAddTabButClick(object sender, MouseButtonEventArgs e){
+
+                       TabView tv = CrowInterface.FindByName("tabview1") as TabView;
+                       if (tv == null)
+                               return;
+                       tv.AddChild (new TabItem () { Caption = "NewTab" });
+               }
+               [STAThread]
+               static void Main ()
+               {
+                       Console.WriteLine ("starting example");
+                       BasicTests win = new BasicTests ();
+                       win.Run (30);
+               }
+       }
+}
\ No newline at end of file
diff --git a/Tests/GOLIBTestsOTK.cs b/Tests/GOLIBTestsOTK.cs
deleted file mode 100644 (file)
index 316c73c..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-#define MONO_CAIRO_DEBUG_DISPOSE
-
-
-using System;
-using System.Runtime.InteropServices;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-using System.Diagnostics;
-
-//using GGL;
-using Crow;
-using System.Threading;
-using System.Collections.Generic;
-using System.Linq;
-using System.IO;
-
-
-namespace testOTK
-{
-       class GOLIBTests : OpenTKGameWindow
-       {
-               public GOLIBTests ()
-                       : base(800, 600,"test: press spacebar to toogle test files")
-               {
-                       VSync = VSyncMode.Off;
-                       Interface.CurrentInterface = CrowInterface;
-               }
-
-               int frameCpt = 0;
-               int idx = 0;
-
-               string[] testFiles;
-
-
-               public int intValue = 25;
-
-               public int IntValue {
-                       get {
-                               return intValue;
-                       }
-                       set {
-                               intValue = value;
-                               NotifyValueChanged ("IntValue", intValue);
-                       }
-               }
-               void onSpinnerValueChange(object sender, ValueChangeEventArgs e){
-                       if (e.MemberName != "Value")
-                               return;
-                       intValue = Convert.ToInt32(e.NewValue);
-               }
-               void change_alignment(object sender, EventArgs e){
-                       RadioButton rb = sender as RadioButton;
-                       if (rb == null)
-                               return;
-                       NotifyValueChanged ("alignment", Enum.Parse(typeof(Alignment), rb.Caption));
-               }
-               public IList<String> List2 = new List<string>(new string[]
-                       {
-                               "string1",
-                               "string2",
-                               "string3",
-                               "string4",
-                               "string5",
-                               "string6",
-                               "string7",
-                               "string8",
-                               "string8",
-                               "string8",
-                               "string8",
-                               "string8",
-                               "string8",
-                               "string9"
-                       }
-               );
-               IList<Color> testList = Color.ColorDic.ToList();
-               public IList<Color> TestList {
-                       set{
-                               testList = value;
-                               NotifyValueChanged ("TestList", testList);
-                       }
-                       get { return testList; }
-               }
-               void OnClear (object sender, MouseButtonEventArgs e) => TestList = null;
-
-               void OnLoadList (object sender, MouseButtonEventArgs e) => TestList = Color.ColorDic.ToList();
-
-               protected override void OnLoad (EventArgs e)
-               {
-                       base.OnLoad (e);
-                       //this.AddWidget(new test4());
-                       KeyboardKeyDown += GOLIBTests_KeyboardKeyDown1;
-
-                       //testFiles = new string [] { @"Interfaces/Divers/testBind0.crow" };
-                       testFiles = new string [] { @"Interfaces/Divers/testCombobox.crow" };
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/GraphicObject", "*.crow")).ToArray ();
-                       //testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/basicTests", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Container", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Group", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Stack", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Splitter", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Expandable", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Divers", "*.crow")).ToArray ();
-
-                       //testFiles = Directory.GetFiles(@"Interfaces", "*.crow").Concat(testFiles).ToArray();
-                       this.Title = testFiles [idx];
-                       CrowInterface.LoadInterface(testFiles[idx]).DataSource = this;
-
-                       //CrowInterface.LoadInterface ("#Tests.ui.fps.crow").DataSource = this; 
-
-               }
-               void GOLIBTests_KeyboardKeyDown1 (object sender, OpenTK.Input.KeyboardKeyEventArgs e)
-               {
-                       if (e.Key == OpenTK.Input.Key.Escape) {
-                               Quit (null, null);
-                               return;
-                       } else if (e.Key == OpenTK.Input.Key.L) {
-                               TestList.Add ("new string");
-                               NotifyValueChanged ("TestList", TestList);
-                               return;
-                       } else if (e.Key == OpenTK.Input.Key.W) {
-                               GraphicObject w = CrowInterface.LoadInterface("Interfaces/testWindow.goml");
-                               w.DataSource = this;
-                               return;
-                       }
-                       CrowInterface.ClearInterface ();
-                       idx++;
-                       if (idx == testFiles.Length)
-                               idx = 0;
-                       this.Title = testFiles [idx];
-                       GraphicObject obj = CrowInterface.LoadInterface(testFiles[idx]);
-                       obj.DataSource = this;
-               }
-
-               void onButClick(object send, MouseButtonEventArgs e)
-               {
-                       Console.WriteLine ("button clicked:" + send.ToString());
-               }
-               void onAddTabButClick(object sender, MouseButtonEventArgs e){
-
-                       TabView tv = CrowInterface.FindByName("tabview1") as TabView;
-                       if (tv == null)
-                               return;
-                       tv.AddChild (new TabItem () { Caption = "NewTab" });
-               }
-               [STAThread]
-               static void Main ()
-               {
-                       Console.WriteLine ("starting example");
-                       GOLIBTests win = new GOLIBTests ();
-                       win.Run (30);
-                       //win.KeyPressEvent += win.Win_KeyPressEvent;
-               }
-
-//             void Win_KeyPressEvent (object o, Gtk.KeyPressEventArgs args)
-//             {
-//                     CrowInterface.ClearInterface ();
-//                     idx++;
-//                     if (idx == testFiles.Length)
-//                             idx = 0;
-//                     this.Title = testFiles [idx];
-//                     GraphicObject obj = CrowInterface.LoadInterface(testFiles[2]);
-//                     obj.DataSource = this;
-//             }
-
-
-
-       }
-}
\ No newline at end of file
diff --git a/Tests/HelloCube.cs b/Tests/HelloCube.cs
new file mode 100644 (file)
index 0000000..4ecd56b
--- /dev/null
@@ -0,0 +1,87 @@
+//
+//  HelloCube.cs
+//
+//  Author:
+//       Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+//  Copyright (c) 2016 jp
+//
+//  This program is free software: you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation, either version 3 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+using System;
+using OpenTK;
+using OpenTK.Graphics.OpenGL;
+using Crow;
+
+namespace Tests
+{
+       class HelloCube : OpenTKGameWindow
+       {
+               [STAThread]
+               static void Main ()
+               {
+                       HelloCube win = new HelloCube ();
+                       win.Run (30);
+               }
+
+               public HelloCube ()
+                       : base(800, 600,"Crow Test with OpenTK")
+               {
+               }
+
+               vaoMesh cube;
+               Texture texture;
+               Matrix4 projection, modelview;
+
+               void initGL(){
+                       GL.Enable (EnableCap.CullFace);
+                       GL.Enable (EnableCap.Blend);
+                       GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
+
+                       cube = vaoMesh.CreateCube ();
+                       texture = new Texture ("image/textest.png");
+
+                       projection =
+                               Matrix4.CreatePerspectiveFieldOfView (
+                                       MathHelper.PiOver4,
+                                       ClientRectangle.Width / (float)ClientRectangle.Height, 1.0f, 10.0f);
+                       modelview = Matrix4.LookAt(new Vector3(5,5,5), Vector3.Zero, Vector3.UnitZ);
+               }
+
+               protected override void OnLoad (EventArgs e)
+               {
+                       base.OnLoad (e);
+
+                       CrowInterface.AddWidget(
+                               new Window ()
+                               {
+                                       Title = "Hello World",
+                                       Width = 200,
+                                       Height = 200
+                               }
+                       );
+                       initGL ();
+               }
+               public override void OnRender (FrameEventArgs e)
+               {                       
+                       base.OnRender (e);
+
+                       shader.SetMVP(modelview * projection);
+
+                       GL.BindTexture (TextureTarget.Texture2D, texture);
+                       cube.Render (BeginMode.Triangles);
+                       GL.BindTexture (TextureTarget.Texture2D, 0);
+               }
+       }
+}
\ No newline at end of file
diff --git a/Tests/HelloWorld.cs b/Tests/HelloWorld.cs
new file mode 100644 (file)
index 0000000..2236239
--- /dev/null
@@ -0,0 +1,27 @@
+using System;
+using Crow;
+
+namespace Tests
+{
+       class HelloWorld : OpenTKGameWindow
+       {
+               public HelloWorld ()
+                       : base(800, 600,"Crow Test with OpenTK")
+               {
+               }
+
+               protected override void OnLoad (EventArgs e)
+               {
+                       base.OnLoad (e);
+
+                       CrowInterface.AddWidget(new Label("Hello World"));
+               }
+
+               [STAThread]
+               static void Main ()
+               {
+                       HelloWorld win = new HelloWorld ();
+                       win.Run (30);
+               }
+       }
+}
\ No newline at end of file
diff --git a/Tests/Interfaces/Divers/welcome.crow b/Tests/Interfaces/Divers/welcome.crow
new file mode 100644 (file)
index 0000000..504413a
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<VerticalStack>
+       <Label Text="Press a key to cycle into the examples"/>
+       <Label Text="Those are basic tests used to validate changes"/>
+</VerticalStack>
\ No newline at end of file
diff --git a/Tests/OTKCrow.cs b/Tests/OTKCrow.cs
deleted file mode 100644 (file)
index baa42f0..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#define MONO_CAIRO_DEBUG_DISPOSE
-
-
-using System;
-using System.Runtime.InteropServices;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-using System.Diagnostics;
-
-//using GGL;
-using Crow;
-using System.Threading;
-using System.Collections.Generic;
-using System.Linq;
-using System.IO;
-
-
-namespace testCrowOTK
-{
-       class CrowTest : OpenTKGameWindow
-       {
-               public CrowTest ()
-                       : base(800, 600,"Crow Test with OpenTK")
-               {
-               }
-
-
-               protected override void OnLoad (EventArgs e)
-               {
-                       base.OnLoad (e);
-
-                       CrowInterface.LoadInterface ("#Tests.ui.test.crow").DataSource = this;  
-               }
-
-               [STAThread]
-               static void Main ()
-               {
-                       CrowTest win = new CrowTest ();
-                       win.Run (30);
-               }
-       }
-}
\ No newline at end of file
index 54f9140a3d56e479ab0183a064491fb984d97652..6ae99b8910b3d47d6f94d8114176df738982ef8e 100644 (file)
@@ -1,12 +1,31 @@
-using System;
+//
+//  Shader.cs
+//
+//  Author:
+//       Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+//  Copyright (c) 2016 jp
+//
+//  This program is free software: you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation, either version 3 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+using System;
 using System.Diagnostics;
 using System.IO;
-using System.Reflection;
 using OpenTK;
 using OpenTK.Graphics.OpenGL;
-using System.Collections.Generic;
 
-namespace Tetra
+namespace Crow
 {
        public class Shader : IDisposable
        {
@@ -59,7 +78,7 @@ namespace Tetra
 
                        void main(void)
                        {
-                               out_frag_color = texture( tex, texCoord);
+                               out_frag_color = texture( tex, texCoord);//vec4(1,0,0,1);
                        }";
                string _geomSource = @"";
 //                     #version 330
diff --git a/Tests/OpenGL/Texture.cs b/Tests/OpenGL/Texture.cs
new file mode 100644 (file)
index 0000000..5e3a350
--- /dev/null
@@ -0,0 +1,93 @@
+//
+//  Texture.cs
+//
+//  Author:
+//       Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+//  Copyright (c) 2016 jp
+//
+//  This program is free software: you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation, either version 3 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+using System;
+using System.Drawing;
+using OpenTK.Graphics.OpenGL;
+using System.Drawing.Imaging;
+using System.IO;
+using System.Diagnostics;
+
+namespace Crow
+{
+    public class Texture
+    {
+        public string Map;
+        public int texRef;
+               public int Width;
+               public int Height;
+                       
+               public Texture(string _mapPath, bool flipY = true)
+        {
+                       if (!File.Exists (_mapPath))
+                               throw new FileNotFoundException ("Texture not found", _mapPath);
+                       try {
+                   Map = _mapPath;
+
+                               Bitmap bitmap = new Bitmap(_mapPath);                           
+
+                               if(flipY)
+                                       bitmap.RotateFlip(RotateFlipType.RotateNoneFlipY);
+
+                               BitmapData data = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height),
+                                       ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
+
+                               createTexture (data.Scan0, data.Width, data.Height);
+
+                               bitmap.UnlockBits(data);
+
+                               GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.LinearMipmapLinear);
+                               GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
+
+                               GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);
+
+                       } catch (Exception ex) {
+                               Debug.WriteLine ("Error loading texture: " + Map + ":" + ex.Message); 
+                       }
+               }
+
+               public Texture(int width, int height)
+               {
+                       createTexture (IntPtr.Zero, width, height);
+                       GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear);
+                       GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
+                       GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.Clamp);
+                       GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.Clamp);
+               }
+
+               void createTexture(IntPtr data, int width, int height)
+               {
+                       Width = width;
+                       Height = height;
+
+                       GL.GenTextures(1, out texRef);
+                       GL.BindTexture(TextureTarget.Texture2D, texRef);
+                       GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, width, height, 0,
+                               OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, data);                 
+               }       
+                       
+        public static implicit operator int(Texture t)
+        { 
+            return t == null ? 0: t.texRef; 
+        }
+    }
+
+}
index b076362c1e5317eb26d11d94d49a09a3abbf4d13..19acd737346edf98dc9dfc8a8e2e329482187b62 100644 (file)
@@ -1,14 +1,27 @@
-using System;
-using System.Runtime.InteropServices;
-using System.Collections.Generic;
+//
+//  vaoMesh.cs
+//
+//  Author:
+//       Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+//  Copyright (c) 2016 jp
+//
+//  This program is free software: you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation, either version 3 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+using System;
 using OpenTK;
 using OpenTK.Graphics.OpenGL;
-//using System.Drawing;
-using System.Drawing.Imaging;
-using System.IO;
-using System.Threading;
-using System.Diagnostics;
-using System.Linq;
 
 namespace Crow
 {
@@ -33,8 +46,7 @@ namespace Crow
                        texCoords = _texCoord;
                        indices = _indices;
 
-                       CreateVBOs ();
-                       CreateVAOs ();
+                       CreateBuffers ();
                }
 
                public vaoMesh (float x, float y, float z, float width, float height, float TileX = 1f, float TileY = 1f)
@@ -54,8 +66,72 @@ namespace Crow
                        };
                        indices = new int[] { 0, 1, 2, 3 };
 
-                       CreateVBOs ();
-                       CreateVAOs ();
+                       CreateBuffers ();
+               }
+               public static vaoMesh CreateCube(){
+                       vaoMesh tmp = new vaoMesh ();
+                       tmp.positions = new Vector3[]
+                       {
+                               new Vector3(-1.0f, -1.0f,  -1.0f),
+                               new Vector3( -1.0f, -1.0f,  1.0f),
+                               new Vector3( 1.0f,  -1.0f,  -1.0f),
+                               new Vector3(1.0f,  -1.0f,  1.0f),
+                               new Vector3(1.0f, 1.0f, -1.0f),
+                               new Vector3( 1.0f, 1.0f, 1.0f), 
+                               new Vector3( -1.0f,  1.0f, -1.0f),
+                               new Vector3(-1.0f,  1.0f, 1.0f)
+                       };
+                       tmp.indices = new int[]
+                       {
+                               // front face
+                               0, 2, 1, 1, 2, 3,
+                               // top face
+                               2, 4, 3, 3, 4, 5,
+                               // back face
+                               4, 6, 5, 5, 6, 7,
+                               // left face
+                               6, 0, 7, 7, 0, 1,
+                               // bottom face
+                               1, 3, 7, 7, 3, 5,
+                               // right face
+//                             1, 5, 6, 6, 2, 1,
+                       };
+                       tmp.texCoords = new Vector2[]
+                       {
+                               new Vector2(0, 0),
+                               new Vector2(0, 1),
+                               new Vector2(1, 0),
+                               new Vector2(1, 1),
+                               new Vector2(0, 0),
+                               new Vector2(0, 1),
+                               new Vector2(1, 0),
+                               new Vector2(1, 1),
+                       };                      
+                       tmp.CreateBuffers ();
+                       return tmp;
+//                             Normals = new Vector3[]
+//                             {
+//                                     new Vector3(-1.0f, -1.0f,  1.0f),
+//                                     new Vector3( 1.0f, -1.0f,  1.0f),
+//                                     new Vector3( 1.0f,  1.0f,  1.0f),
+//                                     new Vector3(-1.0f,  1.0f,  1.0f),
+//                                     new Vector3(-1.0f, -1.0f, -1.0f),
+//                                     new Vector3( 1.0f, -1.0f, -1.0f),
+//                                     new Vector3( 1.0f,  1.0f, -1.0f),
+//                                     new Vector3(-1.0f,  1.0f, -1.0f),
+//                             };
+//
+//                             Colors = new int[]
+//                             {
+//                                     Utilities.ColorToRgba32(Color.DarkRed),
+//                                     Utilities.ColorToRgba32(Color.DarkRed),
+//                                     Utilities.ColorToRgba32(Color.Gold),
+//                                     Utilities.ColorToRgba32(Color.Gold),
+//                                     Utilities.ColorToRgba32(Color.DarkRed),
+//                                     Utilities.ColorToRgba32(Color.DarkRed),
+//                                     Utilities.ColorToRgba32(Color.Gold),
+//                                     Utilities.ColorToRgba32(Color.Gold),
+//                             };
                }
                public void CreateBuffers(){
                        CreateVBOs ();
index 1dcd6066cf180a825a7ba41b02ed268968b3f5be..381f86c8d0eb06e8c12f316a8ffe9ff8295d320c 100644 (file)
 //  You should have received a copy of the GNU General Public License
 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using System.Linq;
 using System.Threading;
-using System.Xml;
-using Cairo;
 using OpenTK;
 using OpenTK.Graphics.OpenGL;
 
@@ -151,9 +145,10 @@ namespace Crow
                #endregion
 
                #region graphic context
-               int texID;
-               Tetra.Shader shader;
-               public static Crow.vaoMesh quad;
+               public int texID;
+               public Shader shader;
+               public vaoMesh quad;
+               public Matrix4 projection;
 
                void createContext()
                {
@@ -183,6 +178,7 @@ namespace Crow
                        GL.Disable (EnableCap.DepthTest);
 
                        shader.Enable ();
+                       shader.SetMVP (projection);
                        GL.ActiveTexture (TextureUnit.Texture0);
                        GL.BindTexture (TextureTarget.Texture2D, texID);
                        lock (CrowInterface.RenderMutex) {
@@ -196,7 +192,7 @@ namespace Crow
                        }
                        quad.Render (BeginMode.TriangleStrip);
                        GL.BindTexture(TextureTarget.Texture2D, 0);
-                       shader.Disable ();
+
                        if (!blend)
                                GL.Disable (EnableCap.Blend);
                        if (depthTest)
@@ -204,12 +200,18 @@ namespace Crow
                }
                #endregion
 
+               /// <summary>
+               /// Override this method for your OpenGL rendering calls
+               /// </summary>
                public virtual void OnRender(FrameEventArgs e)
                {
                }
+               /// <summary>
+               /// Override this method to customize clear method between frames
+               /// </summary>
                public virtual void GLClear()
                {
-                       GL.Clear (ClearBufferMask.ColorBufferBit);
+                       GL.Clear (ClearBufferMask.ColorBufferBit|ClearBufferMask.DepthBufferBit);
                }
 
                #region Game win overrides
@@ -233,10 +235,9 @@ namespace Crow
                        Console.WriteLine("GLSL version: " + GL.GetString (StringName.ShadingLanguageVersion));
                        Console.WriteLine("*************************************\n");
 
-                       shader = new Tetra.Shader ();
-                       shader.Enable();
-                       shader.SetMVP(OpenTK.Matrix4.CreateOrthographicOffCenter (-0.5f, 0.5f, -0.5f, 0.5f, 1, -1));
-                       GL.UseProgram(0);
+                       projection = OpenTK.Matrix4.CreateOrthographicOffCenter (-0.5f, 0.5f, -0.5f, 0.5f, 1, -1);
+
+                       shader = new Shader ();
                        quad = new Crow.vaoMesh (0, 0, 0, 1, 1, 1, -1);
                }
 
@@ -254,7 +255,6 @@ namespace Crow
                                NotifyValueChanged("memory", GC.GetTotalMemory (false).ToString());
                        }
                        frameCpt++;
-                       //CrowInterface.Update ();
                }
                protected override void OnRenderFrame(FrameEventArgs e)
                {
index ab27a959e97e59e1337e400542af68b1693deb76..48427086edf18fe48bc3e30bdaade855b55a6166 100644 (file)
@@ -8,12 +8,12 @@
     <OutputType>Exe</OutputType>
     <RootNamespace>Tests</RootNamespace>
     <AssemblyName>Tests</AssemblyName>
-    <StartupObject>testOTK.GOLIBTests</StartupObject>
+    <StartupObject>Tests.HelloWorld</StartupObject>
     <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <OutputPath>$(SolutionDir)/build/$(Configuration)</OutputPath>
-    <IntermediateOutputPath>$(SolutionDir)/build/obj/$(Configuration)</IntermediateOutputPath>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ReleaseVersion>0.4</ReleaseVersion>
+       <ReleaseVersion>0.4</ReleaseVersion>
+       <OutputPath>$(SolutionDir)/build/$(Configuration)</OutputPath>
+       <IntermediateOutputPath>$(SolutionDir)/build/obj/$(Configuration)</IntermediateOutputPath>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
     <ConsolePause>false</ConsolePause>
   </PropertyGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <Import Project="..\packages\gtk-sharp.Linux.3.14.3.14.7\build\net40\gtk-sharp.Linux.3.14.targets" Condition="Exists('..\packages\gtk-sharp.Linux.3.14.3.14.7\build\net40\gtk-sharp.Linux.3.14.targets')" />
   <ItemGroup>
     <Reference Include="System" />
     <Reference Include="System.Data" />
     <Reference Include="System.Xml" />
     <Reference Include="System.Drawing" />
     <Reference Include="OpenTK">
-      <HintPath>$(SolutionDir)\packages\OpenTK.Next.1.2.2336.6514-pre\lib\net20\OpenTK.dll</HintPath>
+      <HintPath>..\packages\OpenTK.Next.1.2.2336.6514-pre\lib\net20\OpenTK.dll</HintPath>
+    </Reference>
+    <Reference Include="atk-sharp">
+      <HintPath>..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\atk-sharp.dll</HintPath>
     </Reference>
     <Reference Include="cairo-sharp">
-      <HintPath>$(SolutionDir)packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\cairo-sharp.dll</HintPath>
-      <Package>gtk-sharp-3.0</Package>
+      <HintPath>..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\cairo-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="gdk-sharp">
+      <HintPath>..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gdk-sharp.dll</HintPath>
     </Reference>
     <Reference Include="gio-sharp">
-      <HintPath>$(SolutionDir)packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gio-sharp.dll</HintPath>
-      <Package>gio-sharp-3.0</Package>
+      <HintPath>..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gio-sharp.dll</HintPath>
     </Reference>
     <Reference Include="glib-sharp">
-      <HintPath>$(SolutionDir)packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\glib-sharp.dll</HintPath>
-      <Package>glib-sharp-3.0</Package>
-       </Reference>
-       <Reference Include="gdk-sharp">
-               <HintPath>$(SolutionDir)packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gdk-sharp.dll</HintPath>
-       <Package>gtk-sharp-3.0</Package>
-</Reference>
-
+      <HintPath>..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\glib-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="gtk-dotnet">
+      <HintPath>..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gtk-dotnet.dll</HintPath>
+    </Reference>
+    <Reference Include="gtk-sharp">
+      <HintPath>..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gtk-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="pango-sharp">
+      <HintPath>..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\pango-sharp.dll</HintPath>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="Interfaces\testBorder.goml.cs" />
-    <Compile Include="GOLIBTestsOTK.cs" />
-    <Compile Include="OTKCrow.cs" />
-    <Compile Include="OpenGL\Shader.cs" />
-    <Compile Include="OpenGL\vaoMesh.cs" />
-    <Compile Include="OpenTKGameWindow.cs" />
+         <Compile Include="Interfaces\testBorder.goml.cs"/>
+         <Compile Include="BasicTests.cs"/>
+         <Compile Include="OpenGL\Shader.cs"/>
+         <Compile Include="OpenGL\vaoMesh.cs"/>
+         <Compile Include="OpenTKGameWindow.cs"/>
+         <Compile Include="OpenGL\Texture.cs"/>
+         <Compile Include="HelloWorld.cs"/>
+         <Compile Include="HelloCube.cs"/>
   </ItemGroup>
   <ItemGroup>
     <None Include="image\u.svg">
     </None>
     <None Include="Interfaces\Container\2.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Stack\0.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Stack\1.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Stack\2.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Stack\3.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Container\3.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Group\0.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Group\1.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Group\2.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Group\3.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Group\4.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Stack\0h.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Stack\1h.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Stack\2h.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Stack\3h.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Stack\4.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\2.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\4.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\5.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\6.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\clip0.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\clip1.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\clip2.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\clip3.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\clip4.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\fps.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\test_Listbox.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\test_stack.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\test0.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\test1.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\test1.1.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\test1.2.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\test2.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\test2WayBinding.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\test3.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\test5.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\test7.crow">
       <LogicalName>Tests.Interfaces.test7.goml</LogicalName>
     </None>
     <None Include="Interfaces\Divers\testAll.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testBorder.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testButton.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testCheckbox.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testCombobox.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testContainer.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testGrid.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testGroupBox.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testHStack.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testPopper.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testRadioButton.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testScrollbar.goml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testSpinner.goml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testStacks.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testTextBox.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testWindow.goml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testWindow2.goml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Divers\testWindow3.goml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\testColorList.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\test4.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\test6.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\test4.1.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\testMsgBox.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\testOutOfClipUpdate.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\testFileDialog.goml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\testImage.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\testDirViewer.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\testTabView.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\testTypeViewer.goml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\testLabel.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\testRadioButton2.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Expandable\1.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Expandable\0.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Expandable\7.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Expandable\2.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Nouveau dossier\testTreeView.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
     <None Include="Interfaces\Splitter\1.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
+    </None>
+    <None Include="OpenTK.dll.config">
+      <LogicalName></LogicalName>
+    </None>
+    <None Include="image\textest.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
+    </None>
+    <None Include="Interfaces\Divers\welcome.crow">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <LogicalName></LogicalName>
     </None>
   </ItemGroup>
   <ItemGroup>
     <Folder Include="Interfaces\Splitter\" />
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="image\tetra.png" />
+    <EmbeddedResource Include="image\tetra.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </EmbeddedResource>
     <EmbeddedResource Include="image\folder0.svg" />
     <EmbeddedResource Include="image\folder1.svg" />
     <EmbeddedResource Include="image\crow0.svg" />
diff --git a/Tests/image/textest.png b/Tests/image/textest.png
new file mode 100755 (executable)
index 0000000..678e6d4
Binary files /dev/null and b/Tests/image/textest.png differ
index d0450fedf0e4bd25911409bae6d74a6d116c8356..d293a65e5a9d8e3457f4e3332a05b2acee5afc6d 100755 (executable)
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<Window Font="droid bold, 10" Title="Open GL" Width="60%" Height="50%">
+<Window Font="droid bold, 10" Title="Open GL" HorizontalAlignment="Left" Width="30%" Height="90%">
        <VerticalStack>
                <HorizontalStack Background="Jet" Height="Fit" Width="Stretched"  Margin="2">
                        <Popper Caption="File" Template="#Tests.ui.Popper.template" Width="Fit">
                        <Label Text="Project" Style="#Tests.ui.LabelButton.style"/>
                        <Label Text="Help" Style="#Tests.ui.LabelButton.style"/>
                </HorizontalStack>
-               <CheckBox Text="Test"/>
+               <GroupBox Caption="Object Rotation" Margin="10" Width="70%" Height="Fit" >
+                       <VerticalStack Spacing="10">
+                               <Spinner Width="50%" Maximum="1,0" SmallIncrement="0,01" Value="{²RotationSpeed}"/>
+                               <Slider Height="10" Width="50%" Maximum="1,0" SmallIncrement="0,01" Value="{²RotationSpeed}"/>
+                               <CheckBox IsChecked="{²ClockWiseRotation}" Caption="Clockwise Rotation"/>
+                               <GroupBox Caption="Rotation Axis" Height="Fit" >
+                                       <VerticalStack>
+                                               <RadioButton Caption="x"/>
+                                               <RadioButton Caption="y"/>
+                                               <RadioButton Caption="z"/>
+                                       </VerticalStack>
+                               </GroupBox>
+                       </VerticalStack>
+               </GroupBox>
+
                <Image Width="100" Height="100"
                Path="#Crow.Images.Icons.exit2.svg"     />
        </VerticalStack>