Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-08-2005, 16:02   #1
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
[OpenGL] Riuscirò mai a disegnare in 2D?

Sto cercando di programmare un gioco in 2D con SDL+OpenGL, ma nonostante i miei sforzi, non riesco ad avere alcun risultato.

Codice di inizializzazione:
Codice:
	SDL_GL_SetAttribute(SDL_GL_RED_SIZE,			5);
	SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE,		5);
	SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE,			5);
	SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE,		16);
	SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,	1);
	if (!(screen = SDL_SetVideoMode(vwidth, vheight, vbpp, SDL_OPENGL))) {
		fprintf(stderr, "Impossibile cambiare modalità grafica (%s).\n", SDL_GetError());
		fprintf(stderr, "Per usare \"" game_name "\" è necessario che la scheda grafica supporti il rendering hardware e il double buffering.\n");
		// return false;
	}
	SDL_WM_SetCaption(game_name, NULL);

	glViewport(0, 0, vwidth, vheight);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(0.0f, vwidth, 0.0f, vheight, -1.0f, +1.0f);
	glMatrixMode(GL_MODELVIEW);
Dove vwidth e vheight sono la larghezza e l'altezza dello schermo (ad esempio 640 e 480).

Ogni volta che devo disegnare sullo schermo, pulisco la visuale con questo codice:
Codice:
	glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Disegno ogni SDL_Surface con questo codice:
Codice:
	glPixelZoom(1.0, -1.0);
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	glRasterPos2f((GLfloat)(dst_rect->x/vwidth), (GLfloat)((dst_rect->y + dst_rect->h)/vheight));
	glDrawPixels(dst_rect->w, dst_rect->h, GL_RGB, GL_UNSIGNED_BYTE, src->pixels);
E, infine, aggiorno la visuale con:
Codice:
	glFlush();
	SDL_GL_SwapBuffers();
Non riesco a capire cosa c'è di sbagliato in questo codice, ma sta di fatto che vedo solo una "bella" schermata nera.

Suggerimenti?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 16:25   #2
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Prova a disabilitare il depth buffer. Controlla se la viewport e' corretta. Non disegnare pixel, disegna triangoli (molto piu' veloce). Parti da un esempio che funziona e poi modificalo poco per volta per ottenere quello che vuoi tu.

Si parte tutti col famoso schermo nero
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 16:30   #3
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da fek
Prova a disabilitare il depth buffer. Controlla se la viewport e' corretta.
È tutto nel codice di inizializzazione: la viewport dovrebbe essere a posto. Proverò usando anche glDisable(GL_GEPTH_BUFFER)...
Quote:
Originariamente inviato da fek
Non disegnare pixel, disegna triangoli (molto piu' veloce).
Disegnare triangoli al posto di pixel? Come? (E poi il giochino non richiede grande velocità, quindi...)
Quote:
Originariamente inviato da fek
Si parte tutti col famoso schermo nero
Vero, ma prima il gioco, in SDL puro, funzionava bene, ma troppo lentamente (qualcosa come 12 FPS). Con OpenGL ho un framerate di minimo 400 FPS, ma non vedo nulla...
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 18:36   #4
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da DanieleC88
È tutto nel codice di inizializzazione: la viewport dovrebbe essere a posto. Proverò usando anche glDisable(GL_GEPTH_BUFFER)...

Disegnare triangoli al posto di pixel? Come? (E poi il giochino non richiede grande velocità, quindi...)
Imposti la matrice di proiezione per una proiezione ortogonale invece che prospettica, e poi glTriangle (se ricordo bene, sono un po' arrugginito con OpenGL).

In D3D sono due colpetti di DIP ed un paio di shader
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 19:14   #5
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da fek
[...] e poi glTriangle (se ricordo bene, sono un po' arrugginito con OpenGL).
forse glBegin(GL_TRIANGLES)?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 19:15   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da fek
Si parte tutti col famoso schermo nero
salvo casi di demenza avanzata (il sottoscritto ) che prima ancora di arrivare allo schermo nero devono superare quello bianco perché si dimenticano di fare SetPixelFormat dopo aver scritto valanghe di codice per riempire PIXELFORMATDESCRIPTOR e fare ChoosePixelFormat
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 22:52   #7
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da 71104
salvo casi di demenza avanzata (il sottoscritto ) che prima ancora di arrivare allo schermo nero devono superare quello bianco perché si dimenticano di fare SetPixelFormat dopo aver scritto valanghe di codice per riempire PIXELFORMATDESCRIPTOR e fare ChoosePixelFormat
Non con X, soprattutto se tramite SDL.
Quote:
Originariamente inviato da fek
Imposti la matrice di proiezione per una proiezione ortogonale invece che prospettica, e poi glTriangle (se ricordo bene, sono un po' arrugginito con OpenGL).

In D3D sono due colpetti di DIP ed un paio di shader
Fammi capire, ché la cosa mi incuriosisce: in pratica dovrei disegnare triangoli della dimensione di un pixel, uno collegato all'altro?

Comunque, ho sostituito "glOrtho(0.0f, vwidth, 0.0f, vheight, -1.0f, +1.0f);" del codice di prima con "glOrtho(0, vwidth, vheight, 0, -1, 1);", come letto in alcuni codici di MPlayer (se non sbaglio, in questo modo non dovrò specificare con glRasterPos l'angolo in basso a sinistra, ma quello in alto a sinistra).
Inoltre, ho disabilitato anche il depth testing con questo codice:
Codice:
	if (glIsEnabled(GL_DEPTH_TEST)) {
		glDepthMask(GL_FALSE);
		glDisable(GL_DEPTH_TEST);
	}
Purtroppo non ho risultati.

Prima di fare questi due cambiamenti, però, ho notato che c'era una sottile linea (credo di un solo pixel di altezza), nella parte bassa dello schermo, con pixel di vari colori. Quindi tutte le chiamate non andavano proprio a vuoto, ma forse erano sbagliate. Ora che ho fatto questi cambiamenti (e un altro paio), lo schermo è totalmente nero.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 23:01   #8
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
secondo me ciò che non va è come fai glOrtho: imho devi passare (nell'ordine) valori del seguente tipo: negativo, positivo, negativo, positivo, positivo piccolo, positivo grande.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 21-08-2005, 09:15   #9
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
La sintassi di glOrtho e':
void glOrtho(
GLdouble left,
GLdouble right,
GLdouble bottom,
GLdouble top,
GLdouble zNear,
GLdouble zFar
);
quindi da quanto mi pare di capire, quello che hai scritto dovrebbe essere corretto.
Il depth buffer e' disabilitato di default, a meno che non lo abiliti con:
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL); //o un'altra funzione per lo z-buffering
glClearDepth(1.0f);

Non conosco le sdl, ma e' possibile che ti manchi del codice da eseguire quando si esegue il resize della finestra?
Qualcosa tipo:

void reshape(int height, int width) {
if (height == 0)
height = 1;
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(...);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 21-08-2005, 11:43   #10
Bane
Member
 
Iscritto dal: Aug 2003
Messaggi: 125
Dopo glMatrixMode(GL_MODELVIEW) prova ad aggiungerci un bel glLoadIdentity() per inizializzare la matrice.
Altrimenti... boh, hanno gia' detto tutto gli altri =)

Ultima modifica di Bane : 21-08-2005 alle 11:45.
Bane è offline   Rispondi citando il messaggio o parte di esso
Old 21-08-2005, 16:32   #11
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da 71104
secondo me ciò che non va è come fai glOrtho: imho devi passare (nell'ordine) valori del seguente tipo: negativo, positivo, negativo, positivo, positivo piccolo, positivo grande.
Secondo me ti confondi con glFrustum(). Dovrebbe essere corretto, anche in base a quanto detto da shinya.
Quote:
Originariamente inviato da shinya
Il depth buffer e' disabilitato di default, a meno che non lo abiliti con:
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL); //o un'altra funzione per lo z-buffering
glClearDepth(1.0f);
Lo so, ma per sicurezza ho messo anche del codice per diabilitarlo. Nessun cambiamento.
Quote:
Originariamente inviato da shinya
Non conosco le sdl, ma e' possibile che ti manchi del codice da eseguire quando si esegue il resize della finestra?
Qualcosa tipo:

void reshape(int height, int width) {
if (height == 0)
height = 1;
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(...);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
Non ridimensiono mai la finestra, a parte la prima volta, dopo l'inizializzazione di SDL e OpenGL (ma in quel caso il codice appropriato c'è). Proverò comunque ad aggiungerlo, non si sa mai (anche se non credo sia così fondamentale, anche in altri progetti in SDL+OpenGL - in 3D, però, non 2D - che ho fatto, anche senza il codice per ridimensionare visuale e viewport, va tutto benissimo).
Quote:
Originariamente inviato da Bane
Dopo glMatrixMode(GL_MODELVIEW) prova ad aggiungerci un bel glLoadIdentity() per inizializzare la matrice.
Altrimenti... boh, hanno gia' detto tutto gli altri =)
Chiamo già glLoadIdentity() ogni volta che devo iniziare a disegnare qualcosa sullo schermo. Ho provato anche a metterci glLoadIdentity() dopo glMatrixMode(GL_MODELVIEW), ma non fa nulla neanche in questo caso...

Aiutoooo!! Non capisco come si possa fare... proverò anche a leggermi un po' di sorgenti di SuperTux e altri giochi 2D. Ho già letto quelli di Chromium B.S.U. e a quanto pare, utilizza delle texture disegnate su quadrati disegnati sullo spazio 3D. Io volevo disegnare direttamente sullo schermo, per evitare di caricare le texture in OpenGL oltre che in SDL, generare le liste, gestire glBegin() e glEnd(), accertarsi che la visuale non sia angolata, ecc...
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 21-08-2005, 16:41   #12
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da 71104
forse glBegin(GL_TRIANGLES)?
o glBegin(GL_TRIANGLE_STRIP)?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 21-08-2005, 16:57   #13
Bane
Member
 
Iscritto dal: Aug 2003
Messaggi: 125
Se ti puo' essere d'aiuto, ho provato a scrivere quanto segue (in base al tuo codice):

unsigned char s[100*3];

for (int j = 0; j < 100*3; j++)
s[j] = 50;

glViewport(0, 0, 640, 480);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0f, 640, 0.0f, 480, -1, +1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glPixelZoom(1.0, -1.0);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glRasterPos2f(100, 100);
glDrawPixels(10, 10, GL_RGB, GL_UNSIGNED_BYTE, s);


e funziona correttamente, quindi il tuo problema deve stare altrove...

Ultima modifica di Bane : 21-08-2005 alle 17:02.
Bane è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 08:33   #14
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da Bane
Se ti puo' essere d'aiuto, ho provato a scrivere quanto segue (in base al tuo codice) e funziona correttamente, quindi il tuo problema deve stare altrove...
Lo credo anch'io, ormai, ma non riesco a capire dove sia l'errore. Ho provato anche ad usare quadrati con delle texture, ma vedo solo una schermata bianca, in qualsiasi profondità.

A questo punto penso che la cosa migliore sia tornare ad usare il rendering software tramite SDL, anche se è decisamente più lento (circa quattro/cinque volte).

Se poi la cosa vi incuriosisce posso anche allegarvi il progetto; è un po' lungo da leggere, ma non mastodontico (il file principale sono 421 linee, il progetto intero sono circa 642).
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 10:25   #15
Bane
Member
 
Iscritto dal: Aug 2003
Messaggi: 125
Quote:
Originariamente inviato da DanieleC88
Se poi la cosa vi incuriosisce posso anche allegarvi il progetto;
Allega... non si sa mai... =)
Bane è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 10:38   #16
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
forse glBegin(GL_TRIANGLES)?
Si'. Dio quanto sono arrugginito con OpenGL.

Ricordo che ai tempi belli usavo un'estensione per disegnare batch di triangoli, ed il singolo triangolo penso di non averlo mai neppure scritto in vita mia

Ultima modifica di fek : 22-08-2005 alle 10:42.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 10:41   #17
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da DanieleC88
Non con X, soprattutto se tramite SDL.

Fammi capire, ché la cosa mi incuriosisce: in pratica dovrei disegnare triangoli della dimensione di un pixel, uno collegato all'altro?
Paradossalmente si', e' piu' veloce

Quando disegni un solo pixel, la GPU e la CPU si devono sincronizzare, la CPU deve accedere alla memoria video, scrivere il pixel, e rilasciare la memoria video. A meno che il driver non mappi da solo il disegno di un pixel al disegno di un triangolo.

Ma immagino che tu non voglia disegnare pixel, voglia disegnare uno sprite, giusto? Allora non e' altro che un quad con una texture mappata 1 a 1. Domanda a 71104 come si disegnano i quad che io sono arrugginito in OpenGL
fek è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 13:29   #18
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
EDIT: whooops! Doppio post, perdonatemi....
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!

Ultima modifica di DanieleC88 : 22-08-2005 alle 13:36.
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 13:35   #19
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da fek
Paradossalmente si', e' piu' veloce

Quando disegni un solo pixel, la GPU e la CPU si devono sincronizzare, la CPU deve accedere alla memoria video, scrivere il pixel, e rilasciare la memoria video. A meno che il driver non mappi da solo il disegno di un pixel al disegno di un triangolo.

Ma immagino che tu non voglia disegnare pixel, voglia disegnare uno sprite, giusto? Allora non e' altro che un quad con una texture mappata 1 a 1. Domanda a 71104 come si disegnano i quad che io sono arrugginito in OpenGL
glBegin(GL_QUADS), questa te la posso dire pure io.
Strana 'sta cosa...

P.S.: HO RISOLTO! Ora, finalmente, funziona bene*. Sapete qual'era l'errore?
...
...
...
.
.
.
...le immagini venivano disegnate fuori dallo schermo per un errore nel posizionamento... e io che ho fatto tutto quel casino!
Ora non mi resta che capire come disegnare la mask (penso con glBitmap, vero?) e ho finito!
Devo dire che, tutto sommato, sono soddisfatto, perché quello che finora ho fatto funziona bene sia con OpenGL che con SDL.
Il progetto ve lo allego lo stesso, tanto per condividere con voi un po' di codice, visto che mi avete aiutato a risolvere. (ricordo che è ancora incompeto)
Ultima cosa, rivolta a fek e 71104: questo è il progetto di cui ho parlato nel famoso thread del gioco che stiamo cercando di creare, dall'idea di questo gioco era nato poi t³, the teacher terminator...
Altro P.S.: non includo il sottofondo musicale (anche se vorrei), perché le dimensioni sarebbero proibitive per HWUpgrade...

* = ringrazio Bane per il suo ultimo post, mi ha dato la spinta per provare ancora una volta a cambiare quella parte di codice, che pensavo ormai fosse corretta.

Edit: al diavolo! Non me lo fa caricare... lo linko da Altervista... http://jmc.altervista.org/killgloria.zip
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 13:42   #20
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Dimenticavo: se qualcuno proverà ad usare questo progetto, vedrà che il puntatore e il personaggio sono ancora una massa confusa di pixel grigi, perché mi sono messo a fare esperimenti con GL_RGB(A)/GL_BGR(A)/altri formati...
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Infineon apre il 2 luglio lo Smart Power...
Crimson Desert non si ferma: il gioco di...
Con iOS 27 l'iPhone si ripristina da sol...
Visa porta i pagamenti in ChatGPT: gli a...
OpenAI valuta un 'drastico' taglio dei p...
Il MacBook con display touch si far&agra...
Google promette di restituire più...
Quattro monitor 4K, doppia LAN 2.5G e Wi...
ROG Equalizer, il cavo 'salva-GPU': prim...
Falla critica CVSS 9.8 in Oracle PeopleS...
Microsoft accelera su Edge: aggiornament...
AMD ha corretto un bug da 10.000 dollari...
Vertiv: data center, la corsa dell’IA sp...
Siri non diventerà la tua fidanzata virt...
Prezzi in crescita del 200% e forniture ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v