Собираю данные по глюкам моих классов. Пока что на одной видеокарте из трёх (NVidia'вской) был замечен странный баг, на других (ATI'шных, из которых одна была в варианте для ноута) не появлявшийся. Следовательно, мне нужно собрать данные.
Выложил на Ifolder и webfile тестовую программку. Насколько я могу судить, она требует редистрибутивы VC (но они сейчас со многими играми идут, так что, надеюсь, у всех есть) и ноябрский DirectX (аналогично).
http://ifolder.ru/5034129
http://webfile.ru/1696678
В общем, запускайте и говорите результат. Только просьба запускать в разрешении 800 x 600 (просто у одного квада координаты абсолютные), попробовать и в оконном, и в полноэкранном режимах.
По идее, лицо на кваде с альфой должна быть видна поверх квада подложки. Если альфа работает, а лицо абсолютно чёрное - знаит, это и есть тот самый баг. Тогда буду думать, что делать.
Да, и кстати, раз уж тут выкладываю. Вот код этого приложеница с использованием моих классов. Просьба посмотреть господ программистов на предмет простоты. Единственное, что выход из приложения пока намертво на Escape в классе прописан, но это скоро изменится.
Скрытый текст:
Код:
#include "global.h"
#include <stdio.h>
#include <windows.h>
#include < D3d9.h>
#include "renderer.h"
#include "r_window.h"
//-----------------------------------------------------------------------------------------
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
D3DWindow *rw = new D3DWindow();
D3DBaseSettings settings;
if (rw->ShowRenderDialog(hInstance, settings)) {
if (rw->CreateD3DWindow(settings, hInstance, iCmdShow)
&& rw->PrepareToRun()) {
D3DDevice *dev = rw->GetD3DDevice();
D3DTexture *tx, *tx1;
D3DQuad *q, *q1;
rw->ShowCursor(false);
tx = dev->LoadTexture(L"data\\test.png");
tx1 = dev->LoadTexture(L"data\\test.bmp");
q = dev->CreateQuad(tx1, true,
true, 400, 100, 400, 400,
true, -1, -1, -1, -1);
q1 = dev->CreateQuad(tx, false,
false, 0.0, 0.5, 1.0, 1.0,
true, -1, -1, -1, -1);
while (rw->Run()) {
if (rw->IsActive() && dev->BeginPaint()) {
q->Draw();
q1->Draw();
dev->EndPaint();
}
}
}
rw->Run();
}
delete rw;
PostQuitMessage(0);
return 0;
}