GS-Zone

Descompresión de graficos directos en memoria Ir al Indice

Moderadores: Moderadores de Argentum, Especialistas de Argentum, Especialistas de Programación

26

Nota » 27 Sep 2011 23:53

Donde esta ese codigo de descompresion y lectura?

EDIT: Ah es el de ore
Última edición por Benja.- el 27 Sep 2011 23:53, editado 1 vez en total

♫ Pones canciones tristes, para sentirte mejor ♪

Imagen
Imagen
Club Atlético Independiente - Fuerza Gustavo!
48
Destructor de Mentes [12]
Registrado: Años de membresíaAños de membresía
Mensajes: 1071
Aportes: 11
Premios: 1
Embajador (1)

Nota » 28 Sep 2011 12:32

Benja.- escribió:Donde esta ese codigo de descompresion y lectura?

EDIT: Ah es el de ore

Si.. igual creo que 13.x usa el mismo módulo, asi que no hay problema. Es mas, los de alkon deberian de implementar esto..

Vicinity of obscenity
525
Legendario Inmortal [2]
Registrado: 5 Años de membresía!
Ubicación: España
Mensajes: 5579
Aportes: 50
Premios: 3
Mister Programador FreeForAll (3)

Nota » 28 Sep 2011 13:09

Excelente aporte.

Holis
ADM 2013
561
Dragon Ancestral [3]
Registrado: Años de membresíaAños de membresía
Ubicación: Argentina
Mensajes: 3111
Aportes: 9

Nota » 28 Sep 2011 14:00

Genial •Parra. Excelente Aporte ;)
SupercalifrigidisticoEspiralidoso
78
Aprendiz [7]
Registrado: Julio 2011
Ubicación: no
Mensajes: 462
Aportes: 3

Nota » 07 Oct 2011 11:17

Che , sirve para cualqier vercion ?

Imagen

Imagen

Imagen
Staff Tierras Legendarias AO
594
Oraculo [2]
Registrado: Años de membresía
Ubicación: Cordobá
Mensajes: 1337
Aportes: 12
Premios: 2
Campeón de Truco (1) Embajador (1)

Nota » 07 Oct 2011 11:45

[JuliaaN] escribió:Che , sirve para cualqier vercion ?

Si lleva implementado el modulo de compresion de ORE o 13.x, si.

Vicinity of obscenity
525
Legendario Inmortal [2]
Registrado: 5 Años de membresía!
Ubicación: España
Mensajes: 5579
Aportes: 50
Premios: 3
Mister Programador FreeForAll (3)

Nota » 07 Oct 2011 14:49

me marca:

La llamada a función en la parte izq de la asignacion debe devolver un tipo Variant u Object

y me marca

Extract_File = True

del sub Extract_File_Memory

alguna idea de q puede ser?



Santty.- escribió:Si, soy hincha de tu padre, el que te gana cada vez que te cruza, el dueño del barrio, el orgullo nacional, rey de copas y el máximo ganador de copa libertadores

PROBLEM?





La gente que cuando camina mueve un poco los labios está practicando respuestas originales para discusiones que ya perdieron hace dos horas.
YPF etatizada: -Hola q carga? -Deme Néstor Súper
686
Dragon Ancestral [4]
Registrado: Años de membresíaAños de membresía
Ubicación: Mendoza
Mensajes: 3545
Aportes: 40

Nota » 09 Oct 2011 14:48

Perdon, se me debió pasar. Solo tienes que remplazar esta linea:


Por esta:

Vicinity of obscenity
525
Legendario Inmortal [2]
Registrado: 5 Años de membresía!
Ubicación: España
Mensajes: 5579
Aportes: 50
Premios: 3
Mister Programador FreeForAll (3)

Nota » 19 Oct 2011 15:28

me surgio otro problema, primero no estaba seguro asi q compile el mismo cliente,

uno usaba extraccion en la memoria, y el otro la extraccion en disco

el del disco anda bien, pero el q usa este sistema, no abre el juego :S

lo mas raro es q en modo debug si anda, pero cuando lo compilo y lo pruebo, al momento de cargar una textura, el juego se cierra

alguna idea ???



Santty.- escribió:Si, soy hincha de tu padre, el que te gana cada vez que te cruza, el dueño del barrio, el orgullo nacional, rey de copas y el máximo ganador de copa libertadores

PROBLEM?





La gente que cuando camina mueve un poco los labios está practicando respuestas originales para discusiones que ya perdieron hace dos horas.
YPF etatizada: -Hola q carga? -Deme Néstor Súper
686
Dragon Ancestral [4]
Registrado: Años de membresíaAños de membresía
Ubicación: Mendoza
Mensajes: 3545
Aportes: 40

Nota » 19 Oct 2011 15:47

GoDKeR escribió:me surgio otro problema, primero no estaba seguro asi q compile el mismo cliente,

uno usaba extraccion en la memoria, y el otro la extraccion en disco

el del disco anda bien, pero el q usa este sistema, no abre el juego :S

lo mas raro es q en modo debug si anda, pero cuando lo compilo y lo pruebo, al momento de cargar una textura, el juego se cierra

alguna idea ???

mhh, en debug te anda y cuando lo usas normal se cierra? que extraño =/

Podrias hacer una pequeña prueba? Metele msgbox a cada linea del codigo (solo en la parte de cargar la textura), así encuentras la linea justo donde se cierra.

Algo tipo:
  1.   Dim InfoHead As INFOHEADER
  2.     Dim file As String
  3.             msgbox "1"
  4.             InfoHead = File_Find(App.Path & "\Recursos\Graficos\Graficos.TLAO", CStr(Archivo) & ".png")
  5.             msgbox "2"
  6.         If InfoHead.lngFileSize <> 0 Then
  7.             file = zLib.Get_Extract(graphics, CStr(Archivo) & ".png")
  8.            
  9.             Set .texture = mD3D.CreateTextureFromFileEx(device, file, _
  10.                 D3DX_DEFAULT, D3DX_DEFAULT, 0, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, D3DX_FILTER_POINT, _
  11.                 D3DX_FILTER_NONE, &HFF000000, texture_info, ByVal 0)
  12.                                                
  13.         End If

etc..

PD: Has cambiado el path del pack y su extensión? lo de "\Recursos\Graficos\Graficos.TLAO", y segundo.., has cambiado .png por el formato que tu uses?

PD2: Al menos si lo has probado en debug.. funciona más rapido? :P
Última edición por •Parra el 19 Oct 2011 15:49, editado 2 veces en total

Vicinity of obscenity
525
Legendario Inmortal [2]
Registrado: 5 Años de membresía!
Ubicación: España
Mensajes: 5579
Aportes: 50
Premios: 3
Mister Programador FreeForAll (3)

Nota » 19 Oct 2011 15:55

  1. Private Function CrearGrafico(ByVal Archivo As Integer, ByRef texwidth As Long, ByRef textheight As Long) As Direct3DTexture8
  2. '**************************************************************
  3. 'Author: Juan Martín Sotuyo Dodero
  4. 'menduz was here
  5. '
  6. '**************************************************************
  7. On Error GoTo ErrHandler
  8.     Dim surface_desc As D3DSURFACE_DESC
  9.     Dim texture_info As D3DXIMAGE_INFO
  10.     Dim index As Integer
  11.     Dim InfoHead As INFOHEADER
  12.     Dim Buffer() As Byte
  13.     MsgBox "1"
  14.     index = Archivo Mod HASH_TABLE_SIZE
  15.    
  16.     With TexList(index)
  17.         .surfaceCount = .surfaceCount + 1
  18.         ReDim Preserve .SurfaceEntry(1 To .surfaceCount) As SURFACE_ENTRY_DYN
  19.         With .SurfaceEntry(.surfaceCount)
  20.             'Nombre
  21.             .FileName = Archivo
  22.            
  23.             'Ultimo acceso
  24.             .UltimoAcceso = GetTickCount
  25.         MsgBox "2"
  26.             InfoHead = File_Find(App.Path & "\Graficos\Graficos.kkao", CStr(Archivo) & ".bmp")
  27.            
  28.         'Si existe usamos BMP
  29.         If InfoHead.lngFileSize <> 0 Then
  30.         MsgBox "3"
  31.             Extract_File_Memory graphics, App.Path & "\Graficos", LCase$(CStr(Archivo) & ".bmp"), Buffer()
  32.         MsgBox "4"
  33.             Set .texture = mD3D.CreateTextureFromFileInMemoryEx(device, Buffer(0), UBound(Buffer()) + 1, D3DX_DEFAULT, _
  34.                                                             D3DX_DEFAULT, 0, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, _
  35.                                                             D3DX_FILTER_POINT, D3DX_FILTER_NONE, _
  36.                                                             &HFF000000, texture_info, ByVal 0)
  37.         MsgBox "5"
  38.         Erase Buffer
  39.         Else
  40.             Call AddtoRichTextBox(frmMain.RecTxt, "Error al Cargar la textura " & CStr(Archivo) & ". Al parecer la textura no existe, contacte a los administradores para resolver el problema.", 255, 255, 255, True, False, False)
  41.             Exit Function
  42.         End If
  43.             .texture.GetLevelDesc 0, surface_desc
  44.             .texture_width = texture_info.Width
  45.             .texture_height = texture_info.Height
  46.             .size = surface_desc.size
  47.             texwidth = .texture_width
  48.             textheight = .texture_height
  49.             Set CrearGrafico = .texture
  50.             mFreeMemoryBytes = mFreeMemoryBytes - surface_desc.size
  51.         End With
  52.     End With
  53.     Debug.Print mFreeMemoryBytes / 1024 / 1024; " MB LIBRES"
  54.     Do While mFreeMemoryBytes < 0
  55.         If Not RemoveLRU() Then
  56.             Exit Do
  57.         End If
  58.     Loop
  59.    
  60.        Delete_File (Windows_Temp_Dir & CStr(Archivo) & ".bmp")
  61. Exit Function
  62. ErrHandler:
  63. Debug.Print "ERROR EN GRHLOAD>" & Archivo & ".bmp"
  64. Erase Buffer
  65. End Function


llega hasta el "4", antes del 5 se cierra, osea esta linea:

  1. Set .texture = mD3D.CreateTextureFromFileInMemoryEx(device, Buffer(0), UBound(Buffer()) + 1, D3DX_DEFAULT, _
  2.                                                             D3DX_DEFAULT, 0, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, _
  3.                                                             D3DX_FILTER_POINT, D3DX_FILTER_NONE, _
  4.                                                             &HFF000000, texture_info, ByVal 0)


y si, hay una diferencia, este es mas rapido xD



Santty.- escribió:Si, soy hincha de tu padre, el que te gana cada vez que te cruza, el dueño del barrio, el orgullo nacional, rey de copas y el máximo ganador de copa libertadores

PROBLEM?





La gente que cuando camina mueve un poco los labios está practicando respuestas originales para discusiones que ya perdieron hace dos horas.
YPF etatizada: -Hola q carga? -Deme Néstor Súper
686
Dragon Ancestral [4]
Registrado: Años de membresíaAños de membresía
Ubicación: Mendoza
Mensajes: 3545
Aportes: 40

Anterior

Volver a Otras versiones

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados