Changeset 7038
- Timestamp:
- 02/22/08 19:06:51 (5 years ago)
- Location:
- lang/c/GSD/trunk
- Files:
-
- 1 added
- 6 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/c/GSD/trunk/common.h
r6959 r7038 26 26 27 27 #define MUTEX_SETTINGS "gsd_mutex" 28 #define MUTEX_MULTI "gsd_mutex_multi" 28 29 #define SHARED_SETTINGS "gsd_settings" 29 30 #define SHARED_PIXELS "gsd_pixels" -
lang/c/GSD/trunk/gsd.def
r6959 r7038 4 4 5 5 EXPORTS 6 GSD_DataLock @1 7 GSD_DataUnlock @2 8 GSD_DelTexture @3 9 GSD_Finalize @4 10 GSD_GetApiVersion @5 11 GSD_GetLastUpdate @6 12 GSD_GetMaxTextureNum @7 13 GSD_GetMaxTextureSize @8 14 GSD_GetTexture @9 15 GSD_GetVersion @10 16 GSD_InitTexture @11 17 GSD_Initialize @12 18 GSD_SetFpsAlign @13 19 GSD_SetFpsLimit @14 20 GSD_SetTexture @15 21 GSD_SetTimerOrg @16 22 GSD_ShowFps @17 23 GSD_UpdateOnActive @18 6 GSD_CheckApiVersion @1 7 GSD_DataLock @2 8 GSD_DataUnlock @3 9 GSD_DelTexture @4 10 GSD_Finalize @5 11 GSD_GetApiVersion @6 12 GSD_GetLastUpdate @7 13 GSD_GetMaxTextureNum @8 14 GSD_GetMaxTextureSize @9 15 GSD_GetTexture @10 16 GSD_GetVersion @11 17 GSD_InitTexture @12 18 GSD_Initialize @13 19 GSD_SetFpsAlign @14 20 GSD_SetFpsLimit @15 21 GSD_SetTexture @16 22 GSD_SetTimerOrg @17 23 GSD_ShowFps @18 24 GSD_UpdateOnActive @19 -
lang/c/GSD/trunk/gsd.h
r6959 r7038 6 6 #endif 7 7 8 #define GSD_APIVER 0x000 100018 #define GSD_APIVER 0x00020001 9 9 10 10 struct GSD_TextureInfo 11 11 { 12 BOOL active; // � \�����邩�ۂ� (TRUE�AFALSE)13 DWORD texSize; // �e�N�X�`���̃T�C�Y�A 2�ׂ̂����Ȃ����Ȃ��� (�s�N�Z���P�� 0�Ȃ��N�X�`���폜12 BOOL active; // �e�N�X�`��������邩�ۂ� (TRUE�AFALSE) 13 DWORD texSize; // �e�N�X�`���̃T�C�Y�AGSD_InitTexture() �Ŏw�肵���l�Ɠ����łȂ����Ȃ��� 14 14 int x, y; // �e�N�X�`���̈ʒu (align�̒l�ɂ��Ċ�ʒu���ς�) 15 DWORD color; // ���F (�ʏ�� � 0xffffffff)15 DWORD color; // ���F (�ʏ��s�����̔� 0xffffffff) 16 16 DWORD align; // �e�N�X�`���̔z�u (DT_LEFT�ADT_CENTER�ADT_RIGHT�ADT_TOP�ADT_VCENTER�ADT_BOTTOM) 17 BYTE *data; // � ݒ��ݕύX��������ULL17 BYTE *data; // �e�N�X�`����[�����o�b�t�@ �ݒ��ݕύX��������ULL 18 18 }; 19 19 … … 25 25 DWORD WINAPI GSD_GetVersion(); 26 26 DWORD WINAPI GSD_GetApiVersion(); 27 BOOL WINAPI GSD_InitTexture(const DWORD *size, int num); 27 BOOL WINAPI GSD_CheckApiVersion(DWORD ver); 28 BOOL WINAPI GSD_InitTexture(const DWORD *texSize, int num); 28 29 BOOL WINAPI GSD_SetTexture(int index, const struct GSD_TextureInfo *info); 29 30 BOOL WINAPI GSD_GetTexture(int index, struct GSD_TextureInfo *info); … … 39 40 #ifdef __cplusplus 40 41 } 42 43 class GSD_DataLocker 44 { 45 public: 46 GSD_DataLocker() 47 { 48 GSD_DataLock(); 49 } 50 51 ~GSD_DataLocker() 52 { 53 GSD_DataUnlock(); 54 } 55 }; 56 41 57 #endif 42 58 -
lang/c/GSD/trunk/hook.cpp
r6959 r7038 270 270 lo = new sLocal; 271 271 272 if(lo->mutexMulti.isAlreadyExists()) 273 { 274 delete lo; 275 lo = NULL; 276 277 return FALSE; 278 } 279 272 280 GetOffsetD3D9(&n1); 273 281 GetOffsetD3D8(&n2); … … 367 375 //----------------------------------------------------------------------------- 368 376 369 BOOL WINAPI GSD_InitTexture(const DWORD *size, int num) 377 BOOL WINAPI GSD_CheckApiVersion(DWORD ver) 378 { 379 WORD hi, lo, hi2, lo2; 380 381 hi = HIWORD(GSD_APIVER); 382 lo = LOWORD(GSD_APIVER); 383 384 hi2 = HIWORD(ver); 385 lo2 = LOWORD(ver); 386 387 if(hi != hi2) 388 return FALSE; 389 390 if(lo < lo2) 391 return FALSE; 392 393 return TRUE; 394 } 395 396 //----------------------------------------------------------------------------- 397 BOOL WINAPI GSD_InitTexture(const DWORD *texSize, int num) 370 398 { 371 399 int i; … … 376 404 return FALSE; 377 405 378 if(! size || num < 1)406 if(!texSize || num < 1) 379 407 return FALSE; 380 408 381 409 lo->offsets[0] = 0; 382 lo-> sizes[0] = size[0];410 lo->texSizes[0] = texSize[0]; 383 411 384 412 for(i=1; i<num; i++) 385 413 { 386 lo->offsets[i] = lo->offsets[i-1] + size[i-1];387 lo-> sizes[i] = size[i];414 lo->offsets[i] = lo->offsets[i-1] + texSize[i-1]*texSize[i-1]*4; // 32bit 415 lo->texSizes[i] = texSize[i]; 388 416 } 389 417 … … 391 419 { 392 420 lo->offsets[i] = 0; 393 lo->sizes[i] = 0; 421 lo->texSizes[i] = 0; 422 423 lo->settings->texInfo[i].texSize = 0; 394 424 } 395 425 396 426 total = 0; 397 427 for(i=0; i<num; i++) 398 total += size[i];428 total += texSize[i]*texSize[i]*4; // 32bit 399 429 400 430 lo->settings->pixelsRevision++; … … 424 454 return FALSE; 425 455 426 if(!info || index >= MAX_TEXNUM)456 if(!info || index < 0 || index >= MAX_TEXNUM) 427 457 return FALSE; 428 458 … … 431 461 432 462 if(!lo->smPixels.getData() && info->data) 463 return FALSE; 464 465 if(lo->texSizes[index] != info->texSize) 433 466 return FALSE; 434 467 … … 442 475 if(info->data) 443 476 { 477 BYTE *p; 478 444 479 lo->settings->texInfo[index].offset = lo->offsets[index]; 445 480 lo->settings->texInfo[index].revision++; 446 481 447 memcpy(lo->smPixels.getData() + lo->offsets[index], info->data, lo->sizes[index]); 482 p = (BYTE*)lo->smPixels.getData() + lo->offsets[index]; 483 if(info->data != p) 484 memcpy(p, info->data, lo->texSizes[index]*lo->texSizes[index]*4); // 32bit 448 485 } 449 486 … … 458 495 return FALSE; 459 496 460 if(!info || index >= MAX_TEXNUM) 461 return FALSE; 462 463 if(index >= lo->maxIndex && info->data) 464 return FALSE; 465 466 if(!lo->smPixels.getData() && info->data) 497 if(!info || index < 0 || index >= MAX_TEXNUM) 467 498 return FALSE; 468 499 … … 472 503 info->x = lo->settings->texInfo[index].x; 473 504 info->y = lo->settings->texInfo[index].y; 474 info->texSize = lo->settings->texInfo[index].texSize; 475 476 if(info->data) 477 memcpy(info->data, lo->smPixels.getData() + lo->offsets[index], lo->sizes[index]); 505 info->texSize = lo->texSizes[index]; 506 507 if(index < lo->maxIndex && lo->smPixels.getData()) 508 { 509 info->data = (BYTE*)lo->smPixels.getData() + lo->offsets[index]; 510 } 511 else 512 { 513 info->data = NULL; 514 } 478 515 479 516 return TRUE; … … 487 524 return; 488 525 489 if(index >= MAX_TEXNUM)526 if(index < 0 || index >= MAX_TEXNUM) 490 527 return; 491 528 -
lang/c/GSD/trunk/hook.h
r6959 r7038 23 23 { 24 24 CMutex mutexSettings; 25 CMutex mutexMulti; 25 26 CSharedMemory smSettings; 26 27 CSharedMemory smPixels; 27 28 28 29 DWORD offsets[MAX_TEXNUM]; 29 DWORD sizes[MAX_TEXNUM];30 DWORD texSizes[MAX_TEXNUM]; 30 31 int maxTextureSize; 31 32 int maxIndex; … … 34 35 35 36 sLocal() : 36 mutexSettings(MUTEX_SETTINGS) 37 mutexSettings(MUTEX_SETTINGS), 38 mutexMulti(MUTEX_MULTI) 37 39 { 38 40 int i; … … 47 49 { 48 50 offsets[i] = 0; 49 sizes[i] = 0;51 texSizes[i] = 0; 50 52 } 51 53 } -
lang/c/GSD/trunk/resource.rc
r6959 r7038 55 55 56 56 VS_VERSION_INFO VERSIONINFO 57 FILEVERSION 0,7, 1,057 FILEVERSION 0,7,2,0 58 58 PRODUCTVERSION 0,0,0,0 59 59 FILEFLAGSMASK 0x3fL … … 74 74 VALUE "CompanyName", " \0" 75 75 VALUE "FileDescription", "GSD\0" 76 VALUE "FileVersion", "0, 7, 1, 0\0"76 VALUE "FileVersion", "0, 7, 2, 0\0" 77 77 VALUE "InternalName", "\0" 78 78 VALUE "LegalCopyright", "Copyright (C) 2008 ��e5bW6vDOJ.\0"
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)