3DGDIRenderer/3DTest/MainForm.vb
Captain ALM b136cb3adf Init 2
2019-09-27 17:26:42 +01:00

52 lines
1.7 KiB
VB.net

'
' Created by SharpDevelop.
' User: 14manvilleA
' Date: 27/09/2019
' Time: 10:49
'
' To change this template use Tools | Options | Coding | Edit Standard Headers.
'
Imports System.Drawing
Imports captainalm.util.Render3D
Imports System.Runtime.InteropServices
Public Partial Class MainForm
Public vp As View3D = Nothing
Public Sub New()
' The Me.InitializeComponent call is required for Windows Forms designer support.
Me.InitializeComponent()
End Sub
Sub MainFormLoad(sender As Object, e As EventArgs) Handles Me.Load
' Enable double-buffering to eliminate flickering.
Me.SetStyle(ControlStyles.UserPaint, True)
Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
vp = New View3D(Me.pbxv.ClientSize.width, Me.pbxv.ClientSize.height, Color.Black, True)
End Sub
Sub TimerRenderTick(sender As Object, e As EventArgs) Handles timerRender.Tick
Me.pbxv.Invalidate()
If GC.GetTotalMemory(False) > 104857600 Then GC.Collect()
End Sub
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)>
private class MEMORYSTATUSEX
public dwLength As UInt32
public dwMemoryLoad As uint32
public ullTotalPhys As uint64
public ullAvailPhys As uint64
public ullTotalPageFile As uint64
public ullAvailPageFile As uint64
public ullTotalVirtual As uint64
public ullAvailVirtual As uint64
public ullAvailExtendedVirtual As uint64
public sub new()
me.dwLength = ctype(Marshal.SizeOf(GetType(MEMORYSTATUSEX)), uint32)
end sub
end class
Private Declare Function GlobalMemoryStatusEx Lib "kernel32" Alias "GlobalMemoryStatusEx" (<[In](), Out()>ByVal lpBuffer As MEMORYSTATUSEX) As <MarshalAs(UnmanagedType.Bool)> Boolean
End Class