GLBridgeVB6 - D3D9/D3D11/D3D12/GL/VULKAN en VB6

Ir abajo

GLBridgeVB6 - D3D9/D3D11/D3D12/GL/VULKAN en VB6

Mensaje por GoDKeR el 21/2/2017, 5:44 pm

LibGL es una libreria que provee acceso a varias librerias programadas en "C" para ser utilizadas en VB6. Nace de la necesidad de poder incluir tecnologias modernas en este lenguaje precario y antiguo. DESCARGA

Cuenta con las siguientes implementaciones.

------------------------------------------------------------

BGFX es una libreria programada en C++ utilizada por muchos motores modernos para abstraer las diferentes librerias graficas tales como DirectX, OpenGL y Vulkan. Esta libreria ofrece una abstraccion muy poderosa y a su vez facil de utilizar.

Las caracteristicas que mas destaco de tal libreria son

   Soporte a muchas librerias graficas tales como (D3D9/D3D11/D3D12, OpenGL, Vulkan)
   Soporte a muchos conceptos de dibujos tales como (Buffers, Shaders, Framebuffers, Occlusion Query, Geometry Shader, Instancing, Deferred Rendering)
   La abstraccion no tiene ningun tipo de penalizacion (Zero Overhead)
   La llamadas son transformadas en comandos y ejecutados en otro hilo (Multithreaden)


La documentacion se encuentra disponible en LINK y algunos ejemplos usando la libreria en LINK.

------------------------------------------------------------

STB es una libreria general programada en C utilizada para cargar varios formatos de objetos en memoria. Expone funciones para cargar cualquier tipo de imagen como JPEG, PNG, TGA, BMP, PSD, GIF, HDR, PIC y PNM

La documentacion se encuentra disponible en LINK

------------------------------------------------------------

Codigo ejemplo base: Crear un nuevo proyecto, agregar LibGL.dll como referencia y los demas DLLs en donde se encuentra el proyecto. Compilar (Para que tome el directorio base y agregar un nuevo Form, donde dentro del form el siguiente codigo)

Código:
Option Explicit
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Const MAIN_VIEW As Byte = 0 ' BGFX trabaja con "Capas", donde cada capa se asimila a una capa de photoshop. Los comandos se ejecutan en diferentes capas
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private m_IsRunning As Boolean    ' Flag que indica si se encuentra corriendo
Private m_IsDebug   As Boolean    ' Flag que indica si se encuentra en modo debug
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Form_Load()
    Me.Show
 
    ' Creamos el dispositivo
    m_IsRunning = Video.Create(Me.hWnd, RENDERER_DIRECT3D11)
 
    ' Reseteamos y seteamos informacion acerca de la ventana
    Call Video.Reset(1024, 768)
 
    ' Especificamos como vamos a limpiar MAIN_VIEW
    Call Video.SetViewClear(MAIN_VIEW, CLEAR_COLOR, &HFF)
 
    Do While (m_IsRunning)    ' Loop principal de nuestro juego
 
        ' Seteamos el viewport de MAIN_VIEW
        Call Video.SetViewRect(MAIN_VIEW, 0, 0, 1024, 768)
 
        ' Esto solo es requerido si no se esta dibujando nada en la pantalla
        Call Video.Touch(0)
 
        ' Notificamos que terminamos de dibujar
        Call Video.Frame
 
        DoEvents
    Loop
 
 
    Video.Destroy
 
End Sub
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Form_Unload(Cancel As Integer)
    m_IsRunning = False   ' Requiere esto, ya que BGFX corre en otro hilo y podria provocar efectos indeseados
 
    Cancel = False
End Sub
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    On Error Resume Next
 
    Select Case KeyCode
        Case vbKeyEscape
            Unload Me
        Case vbKeyF1     ' Activamos o desactivamos la informacion debug
            If m_IsDebug Then
                m_IsDebug = False
 
                Call Video.SetDebug(DEBUG_MODE_STATS)
            Else
                m_IsDebug = True
 
                Call Video.SetDebug(DEBUG_MODE_STATS)
            End If
    End Select
End Sub

Post original:
Argentum Dev
GSZ

Ejemplo de DirectX11 corriendo en Fénix XIII

avatar
GoDKeR
Staff Aesir Online
Staff Aesir Online

¿BANEADO? : No.
Premios :
[1ºP]Torneo de LoL por equipos.
Cantidad de envíos : 49
Edad : 23
Localización : Mendoza
Fecha de inscripción : 11/11/2013

Ver perfil de usuario

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.