Jump to content

Recommended Posts

da me non funziona bene l'abort/restart: quando lo premo che riapre la schermata che ha ancora tutte le voci che devono essere selezionate per quanto riguarda quelle dei core anche se non vengono visualizzate le checkbox evidenziate mi tiene sempre l'ultima modifica fatta. In piu' se si vuole cambiare idea e nn fare piu' l'esclusione dei thread non si puo fare e si deve resettare (che, ripeto, da me non funziona).

Questa la config:

CPU :

Intel® Core?2 CPU 6400 @ 2.13GHz

------------------------------------------------------------------

Cores :

2

---------------------------------------------

Operating System :

Windows XP Professional SP3 [ 5.1 Build 2600 ]

 

Mi ha dato un punteggio di 9 sul 1K

 

cmq il carico cpu è sempre tra 97 e 99% penso possa essere soddisfacente come cosa ;)Complimenti per questo egregio lavoro. :n2mu:

 

hai ragione, in effetti per fare prima ho fatto riavviare alla

brutta l'applicazione, ma sto scrivendo la procedura

corretta, abbi pazienza, il cambio dei thread è incluso

nel reset di tutte le viariabili, quindi coincide con il fatto stesso :D

 

grazie per i complimenti, e ne approfitto per ringraziare tutti dei complimenti, troppo buoni :clapclap:

 

con le beta i punteggi danno un po' a desiderare, in quanto cambiando le routine, cambiano i risultati

che per ora sono ancora fittizi, dalla prossima release , sara tutto un pò piu stabile,

del 97 e il 99 per cento, forse è già risolto, cioè , mi ero dimenticato di chiudere

un processo, che occupava cicli.

Edited by Xstreme
Link to comment
Share on other sites

  • Replies 437
  • Created
  • Last Reply

Top Posters In This Topic

:asd:

 

 

 

...... sono appena tornato a casa :asd:

 

è scritta in un linguaggio simile al VIsual Basic, e utilizza OpenGL:

 

BlitzMAX

 

:)

 

 

clip1.jpg

 

 

 

quindi questo qui sotto non centra nulla con quel codice essendo c++, vero ?

 

#include "geom.h"

#include

#include

 

using namespace std;

 

extern "C"{

void C_UpdateNormals(int,int,short *,float *,float *);

int C_IntersectSegmentTriangle( float px, float py, float pz,

float qx, float qy, float qz,

float ax, float ay, float az,

float bx, float by, float bz,

float cx, float cy, float cz,

float &u, float &v, float &w, float &t);

}

 

int TriangleVertex(int,int,short*);

 

void C_UpdateNormals(int no_tris,int no_verts,short *tris,float *vert_coords,float *vert_norm){

 

int t;

map norm_map;

 

for( t=0;t

 

int tri_no=(t+1)*3;

 

int v0=tris[tri_no-3];

int v1=tris[tri_no-2];

int v2=tris[tri_no-1];

 

float ax=vert_coords[v1*3+0]-vert_coords[v0*3+0];

float ay=vert_coords[v1*3+1]-vert_coords[v0*3+1];

float az=vert_coords[v1*3+2]-vert_coords[v0*3+2];

 

float bx=vert_coords[v2*3+0]-vert_coords[v1*3+0];

float by=vert_coords[v2*3+1]-vert_coords[v1*3+1];

float bz=vert_coords[v2*3+2]-vert_coords[v1*3+2];

 

float nx=(ay*bz)-(az*by); // surf.TriangleNX#(t)

float ny=(az*bx)-(ax*bz); // surf.TriangleNX#(t)

float nz=(ax*by)-(ay*bx); // surf.TriangleNX#(t)

 

Vector n(nx,ny,nz);

n.normalize();

 

int c;

for( c=0;c

 

int v=TriangleVertex(t,c,tris);

 

float vx=vert_coords[v*3]; // surf.VertexX(v)

float vy=vert_coords[(v*3)+1]; // surf.VertexY(v)

float vz=vert_coords[(v*3)+2]; // surf.VertexZ(v)

 

Vector vex;

vex.x=vx;

vex.y=vy;

vex.z=vz;

 

norm_map[vex]+=n;

 

}

 

}

 

int v;

for( v=0;v

 

float vx=vert_coords[v*3]; // surf.VertexX(v)

float vy=vert_coords[(v*3)+1]; // surf.VertexY(v)

float vz=vert_coords[(v*3)+2]; // surf.VertexZ(v)

 

Vector vert(vx,vy,vz);

//vert.x=vx;

//vert.y=vy;

//vert.z=vz;

 

Vector norm=norm_map[vert];

//If !norm Continue;

 

norm.normalize();

 

vert_norm[v*3+0]=norm.x; // surf.VertexNormal(v,norm.x,norm.y,norm.z)

vert_norm[v*3+1]=norm.y; // surf.VertexNormal(v,norm.x,norm.y,norm.z)

vert_norm[v*3+2]=norm.z; // surf.VertexNormal(v,norm.x,norm.y,norm.z)

 

}

 

 

 

}

 

int TriangleVertex(int tri_no,int corner,short* tris){

 

int vid[3];

 

tri_no=(tri_no+1)*3;

vid[0]=tris[tri_no-1];

vid[1]=tris[tri_no-2];

vid[2]=tris[tri_no-3];

 

return vid[corner];

 

}

 

// Given segment pq and triangle abc, returns whether segment intersects

// triangle and if so, also returns the barycentric coordinates (u,v,w)

// of the intersection point

int C_IntersectSegmentTriangle( float px, float py, float pz,

float qx, float qy, float qz,

float ax, float ay, float az,

float bx, float by, float bz,

float cx, float cy, float cz,

float &u, float &v, float &w, float &t)

{

Vector p,q,a,b,c;

p.x=px;p.y=py;p.z=pz;q.x=qx,q.y=qy;q.z=qz;a.x=ax;a.y=ay;a.z=az;b.x=bx;b.y=by;b.z=bz;c.x=cx;c.y=cy;c.z=cz;

 

Vector ab = b - a;

Vector ac = c - a;

Vector qp = p - q;

 

// Compute triangle normal. Can be precalculated or cached if

// intersecting multiple segments against the same triangle

Vector n = ab.cross(ac);

 

// Compute denominator d. If d

// away from triangle, so exit early

float d = qp.dot(n);

if (d

 

// Compute intersection t value of pq with plane of triangle. A ray

// intersects iff 0

// dividing by d until intersection has been found to pierce triangle

Vector ap = p - a;

t = ap.dot(n);

if (t

if (t > d) return 0; // For segment; exclude this code line for a ray test

 

// Compute barycentric coordinate components and test if within bounds

Vector e = qp.cross(ap);

v = ac.dot(e);

if (v d) return 0;

w = -(ab.dot(e));

if (w d) return 0;

 

// Segment/ray intersects triangle. Perform delayed division and

// compute the last barycentric coordinate component

float ood = 1.0f / d;

t *= ood;

v *= ood;

w *= ood;

u = 1.0f - v - w;

return 1;

}

Edited by Xstreme
Link to comment
Share on other sites

 

 

quindi questo qui sotto non centra nulla con quel codice essendo c++, vero ?

 

#include "geom.h"

#include

#include

 

using namespace std;

 

extern "C"{

void C_UpdateNormals(int,int,short *,float *,float *);

int C_IntersectSegmentTriangle( float px, float py, float pz,

float qx, float qy, float qz,

float ax, float ay, float az,

float bx, float by, float bz,

float cx, float cy, float cz,

float &u, float &v, float &w, float &t);

}

 

int TriangleVertex(int,int,short*);

 

void C_UpdateNormals(int no_tris,int no_verts,short *tris,float *vert_coords,float *vert_norm){

 

int t;

map norm_map;

 

for( t=0;t

 

int tri_no=(t+1)*3;

 

int v0=tris[tri_no-3];

int v1=tris[tri_no-2];

int v2=tris[tri_no-1];

 

float ax=vert_coords[v1*3+0]-vert_coords[v0*3+0];

float ay=vert_coords[v1*3+1]-vert_coords[v0*3+1];

float az=vert_coords[v1*3+2]-vert_coords[v0*3+2];

 

float bx=vert_coords[v2*3+0]-vert_coords[v1*3+0];

float by=vert_coords[v2*3+1]-vert_coords[v1*3+1];

float bz=vert_coords[v2*3+2]-vert_coords[v1*3+2];

 

float nx=(ay*bz)-(az*by); // surf.TriangleNX#(t)

float ny=(az*bx)-(ax*bz); // surf.TriangleNX#(t)

float nz=(ax*by)-(ay*bx); // surf.TriangleNX#(t)

 

Vector n(nx,ny,nz);

n.normalize();

 

int c;

for( c=0;c

 

int v=TriangleVertex(t,c,tris);

 

float vx=vert_coords[v*3]; // surf.VertexX(v)

float vy=vert_coords[(v*3)+1]; // surf.VertexY(v)

float vz=vert_coords[(v*3)+2]; // surf.VertexZ(v)

 

Vector vex;

vex.x=vx;

vex.y=vy;

vex.z=vz;

 

norm_map[vex]+=n;

 

}

 

}

 

int v;

for( v=0;v

 

float vx=vert_coords[v*3]; // surf.VertexX(v)

float vy=vert_coords[(v*3)+1]; // surf.VertexY(v)

float vz=vert_coords[(v*3)+2]; // surf.VertexZ(v)

 

Vector vert(vx,vy,vz);

//vert.x=vx;

//vert.y=vy;

//vert.z=vz;

 

Vector norm=norm_map[vert];

//If !norm Continue;

 

norm.normalize();

 

vert_norm[v*3+0]=norm.x; // surf.VertexNormal(v,norm.x,norm.y,norm.z)

vert_norm[v*3+1]=norm.y; // surf.VertexNormal(v,norm.x,norm.y,norm.z)

vert_norm[v*3+2]=norm.z; // surf.VertexNormal(v,norm.x,norm.y,norm.z)

 

}

 

 

 

}

 

int TriangleVertex(int tri_no,int corner,short* tris){

 

int vid[3];

 

tri_no=(tri_no+1)*3;

vid[0]=tris[tri_no-1];

vid[1]=tris[tri_no-2];

vid[2]=tris[tri_no-3];

 

return vid[corner];

 

}

 

// Given segment pq and triangle abc, returns whether segment intersects

// triangle and if so, also returns the barycentric coordinates (u,v,w)

// of the intersection point

int C_IntersectSegmentTriangle( float px, float py, float pz,

float qx, float qy, float qz,

float ax, float ay, float az,

float bx, float by, float bz,

float cx, float cy, float cz,

float &u, float &v, float &w, float &t)

{

Vector p,q,a,b,c;

p.x=px;p.y=py;p.z=pz;q.x=qx,q.y=qy;q.z=qz;a.x=ax;a.y=ay;a.z=az;b.x=bx;b.y=by;b.z=bz;c.x=cx;c.y=cy;c.z=cz;

 

Vector ab = b - a;

Vector ac = c - a;

Vector qp = p - q;

 

// Compute triangle normal. Can be precalculated or cached if

// intersecting multiple segments against the same triangle

Vector n = ab.cross(ac);

 

// Compute denominator d. If d

// away from triangle, so exit early

float d = qp.dot(n);

if (d

 

// Compute intersection t value of pq with plane of triangle. A ray

// intersects iff 0

// dividing by d until intersection has been found to pierce triangle

Vector ap = p - a;

t = ap.dot(n);

if (t

if (t > d) return 0; // For segment; exclude this code line for a ray test

 

// Compute barycentric coordinate components and test if within bounds

Vector e = qp.cross(ap);

v = ac.dot(e);

if (v d) return 0;

w = -(ab.dot(e));

if (w d) return 0;

 

// Segment/ray intersects triangle. Perform delayed division and

// compute the last barycentric coordinate component

float ood = 1.0f / d;

t *= ood;

v *= ood;

w *= ood;

u = 1.0f - v - w;

return 1;

}

 

 

 

 

 

eh si, direi proprio che c'entri nulla con il Basic utilizzato in BlitzMax e Blitz3D.

 

ma da dove proviene?

Link to comment
Share on other sites

eh si, direi proprio che c'entri nulla con il Basic utilizzato in BlitzMax e Blitz3D.

 

ma da dove proviene?

 

---------------------------------------------

 

eh no, io direi proprio che non ci siamo :) ,

 

al contrario,

 

è una parte rilevante dell'eseguibile

grafico che tu definisci "Blitzmax/OpenGL"

e che hai avuto modo di vedere,

 

se rileggi bene il codice C,

esso è un

extern "C"

 

 

 

il funzionamento del binding di interazione lo puoi trovare qui :

 

---------------------------------------------

http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/it/html_single/C++-dlopen.html.gz

3.1. extern "C"

 

In C++, una keyword indica che una funzione deve impiegare la convenzione di linking (il termine comunemente usato è "binding" - N.d.T.) usata in C: extern "C". Una funzione dichiarata extern "C" viene rappresentata da un simbolo coincidente con il nome della funzione, esattamente come in C. Per questa ragione, solo funzioni che non sono metodi di una classe possono essere dichiarate extern "C", e non possono essere overloaded.

Nonostante le serie limitazioni, funzioni dichiarate extern "C" sono estremamente utili nel nostro scenario perché possono essere caricate dinamicamente utilizzando dlopen esattamente come una funzione C.

Questo non significa che una funzione dichiarata come extern "C" non può contenere codice C++: detta funzione è una funzione C++ a tutti gli effetti che può utilizzare le funzionalità del linguaggio C++ e ricevere qualunque tipo di argomento il programmatore desideri.

 

----------------------------------------------------------

 

se riesci a vedere un binding con un api monitor, o con editor HEX,

in un compilato eseguibile e

 

...pubblicamente ....

 

mi indichi dove avviene il riversamento della procedura,

 

..... pubblicamente....

 

hai la cena pagata :briai: .

 

ps

eventialmente per non farti vedere il codice usavo questo :

 

http://upx.sourceforge.net

Edited by Xstreme
Link to comment
Share on other sites

ovvio la superpippa I è il phenom I° modello... se il Phenom II è così lento nel calcolo dei numeri primi (toto ha spiegato il perchè egregiamente) non oso immaginare il pippa I° che aveva anche meno mhz...:asd::asd::asd:

 

sinceramente per "giocare" trovo gli AMD più vivi degli Intel,

 

anche se il gioco e sempre lo stesso, giocato con un AMD

 

è più "appassionante", non sò perche, ma a me fà cosi,

 

forse è solo una mia suggestione :)

Link to comment
Share on other sites

comunque visto che siamo in argomento

io personalmente per la vedere ram uso questa

classe :

 

include

 

int TotalPhysicalMemory(void){

MEMORYSTATUS ms;

GlobalMemoryStatus(&ms);

return ms.dwTotalPhys;

}

 

int AvailPhysicalMemory(void){

MEMORYSTATUS ms;

GlobalMemoryStatus(&ms);

return ms.dwAvailPhys;

}

 

int TotalVirtualMemory(void){

MEMORYSTATUS ms;

GlobalMemoryStatus(&ms);

return ms.dwTotalVirtual;

}

 

int AvailVirtualMemory(void){

MEMORYSTATUS ms;

GlobalMemoryStatus(&ms);

return ms.dwAvailVirtual;

}

 

int TotalPageFileMemory(void){

MEMORYSTATUS ms;

GlobalMemoryStatus(&ms);

return ms.dwTotalPageFile;

}

 

int AvailPageFileMemory(void){

MEMORYSTATUS ms;

GlobalMemoryStatus(&ms);

return ms.dwAvailPageFile;

}

 

int MemoryLoad(void){

MEMORYSTATUS ms;

GlobalMemoryStatus(&ms);

return ms.dwMemoryLoad / 2;

}

 

 

 

mentre per vedere lo spazio su disco fisso uso questa :

 

 

#include

 

int diskSpace;

 

int GetDiskSpace(void)

{

int const drive = _getdrive();

struct _diskfree_t diskfree;

 

_getdiskfree(drive,&diskfree);

 

__int64 diskSpace=(__int64)diskfree.avail_clusters*(__int64)diskfree.sectors_per_cluster*(__int64)diskfree.bytes_per_sector;

diskSpace/=1000;

return (int)diskSpace;

}

 

toto basta chiedere che ti verrà dato :)

 

se vuoi vedere anche le classi per cpu , sistema

operativo, sincronia dei thread , cores , priority,

, affinity ecc ecc dimmelo che te le posto. :)

 

Edited by Xstreme
Link to comment
Share on other sites

sembra andare tutto bene pero' non mi dice che mobo ho

 

 

e su O.S. la stringa viene male

 

 

Per il resto viene tutto bene anche se non bene indentato

 

 

grazie,

 

scheda grafica la vede ?

 

che mobo hai ?

 

se non hai dati sensibili che vengono visualizzati me la posti ?

 

ps

non ho ancora fatto il debug su XP, ma vedo che andiamo già male :)

 

 

Clipboaalpha.jpg

Edited by Xstreme
Link to comment
Share on other sites

eccomi con quello che esce a me:

 

SystemRoot : C:Windows

windir : C:Windows

TEMP : C:UsersapixAppDataLocalTemp

ALLUSERSPROFILE : C:ProgramData

APPDATA : C:UsersapixAppDataRoaming

CommonProgramFiles : C:Program FilesCommon Files

COMPUTERNAME : APIX-PC

HOMEDRIVE : C:

LOGONSERVER : \APIX-PC

ProgramFiles : C:Program Files

SystemDrive : C:

USERDOMAIN : apix-PC

USERNAME : apix

USERPROFILE : C:Usersapix

NUMBER_OF_PROCESSORS : 4

PROCESSOR_ARCHITECTURE : x86

PROCESSOR_IDENTIFIER : x86 Family 16 Model 4 Stepping 2, AuthenticAMD

PROCESSOR_LEVEL : 16

PROCESSOR_REVISION : 0402

: O.S. Windows 7

Total physical : 2097151 Kb

Available physical : 896320 Kb

Disk space on current drive : 42576584 Kb

CPU Speed in MHz : 3604

CPU Name String : AMD Phenom? II X4 940 Processor

BoardManufacturer : ASUSTeK Computer INC.

BaseBoardProduct : M4A79 Deluxe

BaseBoardVersion : Rev 1.xx

GPU Board 1 : NVIDIA GeForce 8800 GT

Link to comment
Share on other sites

In pratica mi viene come quella di apix solo che gli spazi tra le informazioni sono piu' ampi (penso sia un tab)

cambia il fatto che non mi visualizza la scheda video che è una intel DG965SS e la vga è quella integrata nel chipset G965, xssi dice:

NUMBER_OF_PROCESSORS : 2

PROCESSOR_ARCHITECTURE : x86

PROCESSOR_IDENTIFIER : x86 Family 6 Model 15 Stepping 2' date=' GenuineIntel

PROCESSOR_LEVEL : 6

PROCESSOR_REVISION : 0f02

: O.S. Windows XP

Total physical : 2070048 Kb

Available physical : 990580 Kb

Disk space on current drive : 42861760 Kb

CPU Speed in MHz : 2131

CPU Name String : Intel® Core?2 CPU 6400 @ 2.13GHz

BoardManufacturer :

BaseBoardProduct :

BaseBoardVersion :

GPU Board 1 : Standard (Unknow - Custom - Integrated)

[/quote']

le informazioni di sistema che stanno sopra preferisco non postarle, cmq sono giuste

Link to comment
Share on other sites

NUMBER_OF_PROCESSORS : 8

PROCESSOR_ARCHITECTURE : x86

PROCESSOR_IDENTIFIER : x86 Family 6 Model 26 Stepping 4, GenuineIntel

PROCESSOR_LEVEL : 6

PROCESSOR_REVISION : 1a04

: O.S. Windows XP

Total physical : 2097151 Kb

Available physical : 2097151 Kb

Disk space on current drive : 54889148 Kb

CPU Speed in MHz : 3800

CPU Name String : Intel® Core? i7 CPU 920 @ 2.67GHz

BoardManufacturer :

BaseBoardProduct :

BaseBoardVersion :

GPU Board 1 : Standard (Unknow - Custom - Integrated)

mi da lo stesso errore

Link to comment
Share on other sites

beh, la superpippa non è cosi messa malaccio, mi sembra :asd:

 

 

ah ecco ho notato che come windows mi vede la frequenza scalata su bus a 200mhz mentre io l'ho impostato a 212 cosa che comporta una frequenza reale di circa 3710mhz contro i 3604rilevati dalla tua applicazione e da windows stesso :)

Link to comment
Share on other sites

ah ecco ho notato che come windows mi vede la frequenza scalata su bus a 200mhz mentre io l'ho impostato a 212 cosa che comporta una frequenza reale di circa 3710mhz contro i 3604rilevati dalla tua applicazione e da windows stesso :)

 

------------------------------------------------------------------------

 

abbiate una sana pazienza :ave:

 

http://www.xstreme.it/XSSI5.zip

 

avrei bisogno di...........beta testing.......grazieeee O0

 

questo lo dedico a TOTO

 

------------------------------------------------------------------------

Link to comment
Share on other sites

------------------------------------------------------------------------

 

abbiate una sana pazienza :ave:

 

http://www.xstreme.it/XSSI5.zip

 

avrei bisogno di...........beta testing.......grazieeee O0

 

questo lo dedico a TOTO

 

------------------------------------------------------------------------

Microsoft Windows XP [Versione 5.1.2600]

© Copyright 1985-2001 Microsoft Corp.

 

C:Documents and SettingsAdministrator>cd documenti

 

C:Documents and SettingsAdministratorDocumenti>xssi5

 

 

-----------------------------------------------------------------------

-----------------------------------------------------------------------

----------------- XSTREME XSSI V.5.0 ALPHA 2.0 ------------------------

-----------------------------------------------------------------------

-----------------------------------------------------------------------

Scheda Video : ATI Radeon HD 4800 Series

-----------------------------------------------------------------------

Driver Scheda Video: 6.14.10.6903

-----------------------------------------------------------------------

Video Monitor : Monitor Plug and Play

-----------------------------------------------------------------------

Scheda Audio : SoundMAX Integrated Digital HD Audio

-----------------------------------------------------------------------

-----------------------------------------------------------------------

Disco di Sistema : C:

-----------------------------------------------------------------------

Processi Attivi : 49

-----------------------------------------------------------------------

Sistema Operativo : Microsoft Windows XP Professional

-----------------------------------------------------------------------

Versione : 5.1.2600

-----------------------------------------------------------------------

Errore di run-time di Microsoft VBScript

Error: ProprietÓ o metodo non supportati dall'oggetto: 'objItem.OSArchitecture'

Line: 68

Position: 5

 

L'ho aperto dal prompt sennò crashava e nn mi faceva vedere l'errore :(

Link to comment
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.


×
×
  • Create New...