add OpenTK3 to keep OpenTK.Input alive & change checking for pressed keys back

This commit is contained in:
2020-12-02 14:02:59 +01:00
parent 7718b03576
commit 0491d9250c
3 changed files with 23 additions and 8 deletions

View File

@@ -94,4 +94,9 @@
<ItemGroup> <ItemGroup>
<Compile Remove="ModelPreview.Designer.vb" /> <Compile Remove="ModelPreview.Designer.vb" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Reference Include="OpenTK3">
<HintPath>..\Shared Libs\OpenTK3.dll</HintPath>
</Reference>
</ItemGroup>
</Project> </Project>

View File

@@ -10,6 +10,7 @@ Imports Color = System.Drawing.Color
Imports System.Windows.Forms.Integration Imports System.Windows.Forms.Integration
Imports OpenTK.Mathematics Imports OpenTK.Mathematics
Imports System.Windows.Input Imports System.Windows.Input
Imports Key = OpenTK3.Input.Key
Namespace PreviewN Namespace PreviewN
@@ -31,6 +32,12 @@ Namespace PreviewN
Public Property Scaling As Single = 500.0F Public Property Scaling As Single = 500.0F
Public Property ClearColor As Color = Color.CornflowerBlue Public Property ClearColor As Color = Color.CornflowerBlue
Public ReadOnly Property Keyboard As OpenTK3.Input.KeyboardState
Get
Return OpenTK3.Input.Keyboard.GetState
End Get
End Property
Public Property EnableCameraControlling As Boolean Public Property EnableCameraControlling As Boolean
Get Get
Return _EnableCameraControlling Return _EnableCameraControlling
@@ -82,13 +89,15 @@ Namespace PreviewN
Private ReadOnly Property IsStrgPressed As Boolean Private ReadOnly Property IsStrgPressed As Boolean
Get Get
Return Keyboard.IsKeyDown(Key.LeftCtrl) OrElse Keyboard.IsKeyDown(Key.RightCtrl) Dim state = Keyboard
Return state.IsKeyDown(Key.ControlLeft) OrElse state.IsKeyDown(Key.ControlRight)
End Get End Get
End Property End Property
Private ReadOnly Property IsShiftPressed As Boolean Private ReadOnly Property IsShiftPressed As Boolean
Get Get
Return Keyboard.IsKeyDown(Key.LeftShift) OrElse Keyboard.IsKeyDown(Key.RightShift) Dim state = Keyboard
Return state.IsKeyDown(Key.ShiftLeft) OrElse state.IsKeyDown(Key.ShiftRight)
End Get End Get
End Property End Property
@@ -284,31 +293,32 @@ Namespace PreviewN
Public Sub MoveCameraViaWASDQE() Public Sub MoveCameraViaWASDQE()
Dim moveSpeed As Integer = Convert.ToInt32(Math.Round((If(IsShiftPressed, 60, 30)) * (MyCamera.CamSpeedMultiplier), 0)) Dim moveSpeed As Integer = Convert.ToInt32(Math.Round((If(IsShiftPressed, 60, 30)) * (MyCamera.CamSpeedMultiplier), 0))
Dim allowCamMove As Boolean = Not (IsMouseDown AndAlso IsShiftPressed) Dim allowCamMove As Boolean = Not (IsMouseDown AndAlso IsShiftPressed)
Dim state = Keyboard
If allowCamMove Then If allowCamMove Then
If Keyboard.IsKeyDown(Key.W) Then If state.IsKeyDown(Key.W) Then
'camera.Move(moveSpeed, moveSpeed, camMtx) 'camera.Move(moveSpeed, moveSpeed, camMtx)
MyCamera.UpdateCameraMatrixWithScrollWheel(moveSpeed, camMtx) MyCamera.UpdateCameraMatrixWithScrollWheel(moveSpeed, camMtx)
savedCamPos = MyCamera.Position savedCamPos = MyCamera.Position
End If End If
If Keyboard.IsKeyDown(Key.S) Then If state.IsKeyDown(Key.S) Then
'camera.Move(-moveSpeed, -moveSpeed, camMtx) 'camera.Move(-moveSpeed, -moveSpeed, camMtx)
MyCamera.UpdateCameraMatrixWithScrollWheel(-moveSpeed, camMtx) MyCamera.UpdateCameraMatrixWithScrollWheel(-moveSpeed, camMtx)
savedCamPos = MyCamera.Position savedCamPos = MyCamera.Position
End If End If
If Keyboard.IsKeyDown(Key.A) Then If state.IsKeyDown(Key.A) Then
'camera.Move(-moveSpeed, 0, camMtx) 'camera.Move(-moveSpeed, 0, camMtx)
MyCamera.UpdateCameraOffsetDirectly(-moveSpeed, 0, camMtx) MyCamera.UpdateCameraOffsetDirectly(-moveSpeed, 0, camMtx)
End If End If
If Keyboard.IsKeyDown(Key.D) Then If state.IsKeyDown(Key.D) Then
'camera.Move(moveSpeed, 0, camMtx) 'camera.Move(moveSpeed, 0, camMtx)
MyCamera.UpdateCameraOffsetDirectly(moveSpeed, 0, camMtx) MyCamera.UpdateCameraOffsetDirectly(moveSpeed, 0, camMtx)
End If End If
If Keyboard.IsKeyDown(Key.E) Then If state.IsKeyDown(Key.E) Then
'camera.Move(0, -moveSpeed, camMtx) 'camera.Move(0, -moveSpeed, camMtx)
MyCamera.UpdateCameraOffsetDirectly(0, -moveSpeed, camMtx) MyCamera.UpdateCameraOffsetDirectly(0, -moveSpeed, camMtx)
End If End If
If Keyboard.IsKeyDown(Key.Q) Then If state.IsKeyDown(Key.Q) Then
'camera.Move(0, moveSpeed, camMtx) 'camera.Move(0, moveSpeed, camMtx)
MyCamera.UpdateCameraOffsetDirectly(0, moveSpeed, camMtx) MyCamera.UpdateCameraOffsetDirectly(0, moveSpeed, camMtx)
End If End If

BIN
Shared Libs/OpenTK3.dll Normal file

Binary file not shown.