Skocz do zawartości

LoadGLTexture z VB na C++ tłumaczenie


Kid

Recommended Posts

Kto mi przetłumaczy poniższy kod na C++

Public Tekstura() As Long 

Public Function LoadGLTexture(NazwaTex As String, KtoraTex As Byte) As Boolean
'Tutaj wczytujemy dany plik i konwertujemy na teksturę "zjadliwą" dla OpenGL

Dim sFile As String
Dim bmFile As BITMAPFILEHEADER
Dim bmInfo As BITMAPINFOHEADER
Dim bmRGB() As RGBQUAD
Dim iFile As Integer
Dim lImageSize As Long
Dim iPixelSize As Integer
Dim baImageData() As Byte


  'Ustawiamy nazwę pliku
  sFile = App.Path & "\" & NazwaTex
  
  iFile = FreeFile
  
  Open sFile For Binary As iFile
  
  'Odczytajmy nagłówek pliku
  Get #iFile, , bmFile
  Get #iFile, , bmInfo
  
  'Zprawdźmy ilu kolorowa jest bitmapa
  If (bmInfo.biBitCount < 24) Then
    'Mniej niż 24bity (16777215) koloruff, przypiszmy ten fakt do odpowiedniej zmiennej
    ReDim bmRGB(bmInfo.biClrUsed)
    
    'Wczytajmy tablicę kolorów
    Get #iFile, , bmRGB
  End If
  
  'Sprawdźmy jak duża jest nasza bitmapa
  iPixelSize = bmInfo.biBitCount / 8
  
  lImageSize = bmInfo.biWidth * bmInfo.biHeight * iPixelSize
  
  ReDim baImageData(lImageSize)
  
  'Wczytajmy dane (obraz) bitmapy
  Get #iFile, , baImageData
  
  Close #iFile
  
  'Stwórzmy wskaźnik dla naszej tekstury
  ReDim Tekstura(KtoraTex)
  
  'Zróbmy nieco miejsca w pamięci karty graficznej dla naszej tekstury
  glGenTextures 1, Tekstura(KtoraTex)
 
  'Od teraz nasza bitmapa będzie nazywała się teksturą, przepiszmy dane z pamięci RAM do VRAM
  glBindTexture glTexture2D, Tekstura(KtoraTex)
  glTexParameteri glTexture2D, tpnTextureMagFilter, GL_LINEAR   'Wybieramy skalowanie metodą GL_LINEAR
  glTexParameteri glTexture2D, tpnTextureMinFilter, GL_LINEAR
  glTexImage2D glTexture2D, 0, 3, bmInfo.biWidth, bmInfo.biHeight, _
    0, tiBGRExt, GL_UNSIGNED_BYTE, baImageData(0)
  'Super! Udało nam się stworzyć teksturę
  LoadGLTexture = True
End Function
Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...