View Full Version : Gestione memoria video??????
Spreste dirmi come si gestisce la memoria, in modo da disegnare una "schermata", e poi visualizzarla sullo schermo. Grazie.
domanda un po' vaga...dipende dal linguaguaggio che vuoi usare...se usi vb ti passo delle funzioni:
Option Explicit
Private Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long
End Type
Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)
___________________________________________________________________
Public Function GetMemoryStatus(ByVal nFlag As Integer) As Long
Dim MemStat As MEMORYSTATUS
Call GlobalMemoryStatus(MemStat)
Select Case nFlag
Case 0: GetMemoryStatus = MemStat.dwMemoryLoad
Case 1: GetMemoryStatus = MemStat.dwTotalPhys
Case 2: GetMemoryStatus = MemStat.dwAvailPhys
Case 3: GetMemoryStatus = MemStat.dwTotalPageFile
Case 4: GetMemoryStatus = MemStat.dwAvailPageFile
Case 5: GetMemoryStatus = MemStat.dwTotalVirtual
Case 6: GetMemoryStatus = MemStat.dwAvailVirtual
End Select
End Function
poi vedi tu come sistemare al meglio le cose :p
ciaooooooooooooooooo :)
Quello è VB...cmq le API che ho usato sono usabili benissimo anch epr il C++ però nn so come si fa :p
In Windows non puoi andare a scrivere direttamente in memoria video...
infatti io vorrei suggerimenti riguardanti programmazione sotto DOS!!
La meoria video in testo si trova nel segmento B800...
A partire da B800:0000 ci sono 8 pagine di memoria consecutive in modo testo 80x25...
Ogni pagina è formata da 4000 byte...
Solo la prima pagina è quella visualizzata (da B800:0000 a B800:0FFFF)...
Per ogni carattere c'è una coppia di byte consecutivi...
Il primo indica il codice Ascii da visualizzare ils econdo byte indica il colore...
Il bit più significativo indica se il carattere deve lampeggiare...
I 3 bit successivi indicano il colore dello sfondo del carattere...
I 4 bit meno significativi codificano il colore del carattere...
Per curiosità...a cosa ti serve ?!??!?
Ho fatto un programma con la grafica avanzata del Pascal, che simula il funzionamento di un ascensore, ma, nei movimenti dell'ascensore ci sono i disurbi creati dal cursore che disegna l'ascensore, quindi vorrei "disegnare" la schermata prima nella memoria video, e oi visualizzarla. Ciao!!!
Quello che vuoi usare tu si chiama Double Buffering...
Aspetta ti cerco qualche link...
http://www.giobe2000.it/HW/Ramvideo/Pag/Home.asp
Ho trovato...la funzione si dovrebbe chiamare SetActivePgae :)
http://www.experts-exchange.com/Programming/Programming_Languages/Pascal/Q_10302538.html
DanieleC88
05-03-2003, 19:15
Non so se c'ho preso, ma guardate quest'ottimo esempio. Dimostra, a mio parere, che anche Windows permette l'elaborazione grafica e poi la visualizzazione.
Originally posted by "DanieleC88"
Non so se c'ho preso, ma guardate quest'ottimo esempio. Dimostra, a mio parere, che anche Windows permette l'elaborazione grafica e poi la visualizzazione.
Questa è un'altra cosa...non significa lavorare direttamente in memoria video ;)
scusate l'ignoranza...
ma perchè non si possono usare le opengl o le directx??
Originally posted by "ultio"
scusate l'ignoranza...
ma perchè non si possono usare le opengl o le directx??
Perchè mi sembra che gli serva per il Pascal sotto DOS...
anche con pascal si possono usare le opengl
In un programma a 16 bit sotto DOS ?
Comunque la risposta è nel link che ho postato sopra...c'è una funzione per swappare le pagine di memoria video usando la libreria GDI del Turbo Pascal...
La funzione funziona (scusate il gioco di parole :D ) solo con la libreria bgi standard del turbo pascal, ma non funziona con quella (trovata girando nel forum) che mi permette di usare risoluzioni molto più alte, con 256 colori.
DanieleC88
10-03-2003, 20:04
Originally posted by "cionci"
Questa è un'altra cosa...non significa lavorare direttamente in memoria video ;)
Lo so... solo che comunque permette di agire su un'area di memoria (usata appunto dalla matrice Pict) per poi passarla alla vera immagine... quasi un passaggio da DOS a Windows.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.