Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
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


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
SpaceX mostra nuove immagini del lancio ...
Cina: CAS Space e Guangzhou Laboratory e...
Nikon Comedy Wildlife Awards 2026: le fo...
Samsung Galaxy A57 e A37 costano di più ...
Windows 11 26H2 taglia il consumo di RAM...
KINGPIN è tornato! Il re dell'ove...
CPU usata, ban ereditato: il caso del Ry...
Spunta un engineering sample di Ryzen 9 ...
iPhone 18 Pro, alcuni utenti segnalano s...
Android Auto: Gemini ascolta la domanda ...
OpenAI avvisa oltre 100 organizzazioni p...
Dall'AI alla SI: il rebranding di Trump ...
0patch offrirà supporto esteso pe...
Sudo sembra un iPod, ma nasconde una car...
Meta, OpenAI e Google rifanno OpenClaw: ...
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: 01:54.


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