Сообщения пользователя BlueHER — Форум CodeNet
« Вернуться к профилю пользователя BlueHER
279
14 марта 2006 года
bave
456 / / 07.03.2004
Цитата:
Originally posted by bave
У меня VC++5.0 ПРоцессор Celeron-1700
Сейчас тоже самое сделал на TASMе - на нём нормально откомпилировалось и нормально работало...
-------------------------------------
А может кто-нибудь подскажет как проверить
наличие расширений SSE и SSE2 без использования
cpuid
Хм. У меня все работает и с CPUID. Лови функцию...
[Свернуть исходник](#)
Код:
bool Processor_Supports_MMX = false;//Поддержка процессором инструкций MMX
bool Processor_Supports_SSE = false;//Поддержка процессором инструкций SSE
bool Processor_Supports_SSE2 = false;//Поддержка процессором инструкций SSE
bool Processor_Supports_3DNOW= false;//Поддержка процессором инструкций SSE2
bool Processor_Supports_RDTSC= false;//Поддержка процессором инструкции RDTSC
char Processor_id_string[13] = ""; //12-байтная строка - идентификатор производителя процессора
void __stdcall CheckProcessorInstructions(void)
{
//DWORD temp_proc_id[3];//сюда сначала поместится строка[12] с ид
279
14 марта 2006 года
bave
456 / / 07.03.2004
Цитата:
Originally posted by bave
У меня VC++5.0 ПРоцессор Celeron-1700
Сейчас тоже самое сделал на TASMе - на нём нормально откомпилировалось и нормально работало...
-------------------------------------
А может кто-нибудь подскажет как проверить
наличие расширений SSE и SSE2 без использования
cpuid
WinApi функция IsProcessorFeaturePresent
Цитата:
Originally posted by a.k.a Throne
Вообщето мне уже не нужен bounding box, мне надо получить координаты вершин и размер структуры. Как получить второе?
Методы интерфейса ID3DXMesh (оба без параметров):
GetNumBytesPerVertex.
Возвращает размер структуры под каждую вершину.
GetNumVertices - возвращает количество вершин.
Цитата:
Originally posted by a.k.a Throne
Нельзя на паскалеЯ? А то С++ не понимаю
Какая разница, Pascal, С...
Смысл такой:
-блокируешь буфер вершин своего меша
-по всем вершинам ищешь MAX и MIN координаты для x,y и z.
Это и будут границы бокса.
Цитата:
Originally posted by a.k.a Throne
Как получить координаты вершин Bounding Box-а из Mesh(ID3DXMesh)?
Дано: g_pMesh - твой меш,
MAX и MIN - точки бокса
NumVertices - число вершин в меше (можно определить из
ID3DXMesh).
Примечание: не годится делать так каждый кадр, надо сделать на этапе инициализации / загрузки меша. А то локить буфер для таких пустяков - несколько расточительно.
[Свернуть исходник](#)
Код:
if SUCCEEDED(g_pMesh->LockVertexBuffer(D3DLOCK_NOSYSLOCK,(void**)&buffer))
{
for(DWORD loop = 0; loop < NumVertices; loop++)
{
MAX.x=( ((D3DXVECTOR3*)(buffer+loop*SizeVert))->x > MAX.x)?(((D3DXVECTOR3*)(buffer+loop*SizeVert))->x):MAX.x;
MIN.x=( ((D3DXVECTOR3*)(buffer+loop*SizeVert))->x < MIN.x)?(((D3DXVECTOR3*)(buffer+loop*SizeVert))->x):MIN.x;
MAX.y=( ((D3DXVECTOR3*)(buffer+loop*SizeVert))->y > MAX.y)?(((D3DXVECTOR3*)(buffer+loop*SizeVert))->y):MAX.y;
MIN.y=( ((D3DXVECTOR3*)(buffer+loop*SizeVert))->y < MIN.y)?(((D3D