forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   axelynx (http://forum.boolean.name/showthread.php?t=14637)

wolfhound512 12.08.2012 22:43

Ответ: axelynx
 
1) Что-то не то с axelynx::Camera::ST_LEFT_HANDLE. Если его установить, то вижу только черный экран.
2) SetVerticesTexCoords() ругается: "Нарушение прав доступа при чтении". Видимо в memcpy указан размер vec3 вместо vec2.
3) axelynx::quat::ToMat3 возвращает пустую матрицу.
4) Предлагаю в axelynx::quat добавить методы:
Код:

axisX() { return vec3( 1 - 2*y*y  - 2*z*z, 2*x*y - 2*z*w, 2*x*z + 2*y*w ); }
axisY() { return vec3( 2*x*y + 2*z*w, 1 - 2*x*x  - 2*z*z, 2*y*z - 2*x*w ); }
axisZ() { return vec3( 2*x*z - 2*y*w, 2*y*z + 2*x*w, 1 - 2*x*x - 2*y*y ); }

5) При создании своего окна требуются ли дополнительные действия кроме нижеприведенных?
Код:

axelynx::Window::SystemHandle handle( MySystemHandle );

Engine *eng = Engine::Init();
Window *wnd = eng->ApplyWindow( &handle, 32, 0 );

while( MyUpdateWindow() /* Обработка сообщений окна */ ) {
        /* ... Render */

        wnd->Flip( false ); /* false - отключение обработки сообщений двиком? */
}


HolyDel 13.08.2012 21:33

Ответ: axelynx
 
Цитата:

1) Что-то не то с axelynx::Camera::ST_LEFT_HANDLE. Если его установить, то вижу только черный экран.
странно. у меня работало.

Цитата:

2) SetVerticesTexCoords() ругается: "Нарушение прав доступа при чтении". Видимо в memcpy указан размер vec3 вместо vec2.
спасибо. надо посмотреть.
\\правка - так и есть :)

Цитата:

3) axelynx::quat::ToMat3 возвращает пустую матрицу.
странно. эта штука работает в сэмплах.
возможно после последних правок что-то слетело.

Цитата:

4) Предлагаю в axelynx::quat добавить методы:
спасибо. нужные методы. добавлю.

Цитата:

5) При создании своего окна требуются ли дополнительные действия кроме нижеприведенных?
эм. может отвалиться ввод, поведение при сворачивани-разворачивании, и еще что-то. тебе так уж нужна своя обработка сообщений? я думаю лучше оставлять очередь обработки сообщений движку. хотя по идее - должно работать.

wolfhound512 13.08.2012 22:00

Ответ: axelynx
 
Цитата:

Сообщение от HolyDel (Сообщение 236156)
эм. может отвалиться ввод, поведение при сворачивани-разворачивании, и еще что-то. тебе так уж нужна своя обработка сообщений? я думаю лучше оставлять очередь обработки сообщений движку. хотя по идее - должно работать.

Я именно из-за ввода и делаю свою обработку событий, т.к. нужен более полный доступ к нему. В общем-то, все прекрасно работает, просто хотел узнать, требуются ли какие-нибудь дополнительные действия.

HolyDel 20.08.2012 20:05

Ответ: axelynx
 
Цитата:

1) axelynx::MouseY(), axelynx::MouseX() возвращают координаты относительно окна, а axelynx::SetMousePos() устанавливает координаты глобально. Как-то не сходится.
пофиксил. теперь везде используются локальные координаты.


Цитата:

2) _surface->Resize( tris, verts )
CreateSurface( verts, tris )
Параметры поменяны местами. Не страшно, но сначала не заметил и получил ошибку.
пофиксил. теперь везде сначала указывается число вершин.

Цитата:

3) Установка вершин списками работает, но еще бы и индексы вершин треугольников так задать.
теперь можно задавать.

Цитата:

1) Что-то не то с axelynx::Camera::ST_LEFT_HANDLE. Если его установить, то вижу только черный экран.
там, оказывается, рендерятся бекфейсы. это я тоже пофиксил.

Цитата:

2) SetVerticesTexCoords() ругается: "Нарушение прав доступа при чтении". Видимо в memcpy указан размер vec3 вместо vec2.
пофиксил

Цитата:

4) Предлагаю в axelynx::quat добавить методы:
добавил.

wolfhound512 22.08.2012 20:11

Ответ: axelynx
 
При использовании _font->Draw() текст криво отображается:

Код:

        _canvas->SetBlendMode( axelynx::BM_ALPHA );
        _canvas->SetRotate( 0 );
        _canvas->SetColor( .4, .8, .6 );
        _font->StartDraw( _canvas );
        _canvas->SetPosition( 10, 50 );
        _font->Draw( _canvas, L"DIP: 14" );
        _font->EndDraw();
        _canvas->Text( 10, 70, L"DIP: 15" );

И положение текста по оси Y не верное: если указать Y=30 и менее, то текст уходит вверх за край экрана

ЗЫ. Когда предполагается выход версии под линукс?

HolyDel 22.08.2012 20:21

Ответ: axelynx
 
Цитата:

ЗЫ. Когда предполагается выход версии под линукс?
под линукс на данный момент не работают фритайп-шрифты и theora видео. остальное работает.

+ я не знаю пока как мне собрать deb пакет.
просто выложить хидеры и so-шки чтобы можно собирать версии под линукс я могу и щас. но это не спортивно. хочу sudo apt-get axelynx.

вывод текста пачками (StartDraw / EndDraw давно не проверял), спасибо за находку ошибки :)

ппц баг. похоже он был всегда. но так как я текст выводил мелко - то тупо его не замечал.
нашел еще один баг с текстом - что бралась по краям буквы текстура с соседней буквы. и получались иногда некрасивые вертикальные полоски. ети два бага тоже пофиксил.

wolfhound512 22.08.2012 22:53

Ответ: axelynx
 
Еще вопрос: текстурные координаты считаются от правого нижнего края изображения - это ошибка или в ОГЛ так заведено?

HolyDel 22.08.2012 22:59

Ответ: axelynx
 
в ОГЛ так заведено - но во всяких прямоугольниках и прочем 2д я инвертировал это. чтобы считалось от правого верхнего края. если где-то считается от правого нижнего - то это ошибка.
естественно, для пользовательских фигур этого нет. там надо учитывать, что по огл считает стартовым именно нижний левый угол. и при рендере в текстуру это надо учитывать тоже, да.

немного посидел над профайлером и увеличил скорость вывода статического текста (через StartDraw / EndDraw) на 30%.

moka 23.08.2012 00:27

Ответ: axelynx
 
С правого верхнего? А не с левого верхнего обычно?

HolyDel 23.08.2012 01:04

Ответ: axelynx
 
ой. конечно с левого. и верхнего и нижнего, но левого.

pozitiffcat 23.08.2012 22:06

Ответ: axelynx
 
слушай, каким и как ты пользуешься профайлером?
пробовал какими то стандартными средствами студии, толи не понял, толи отстой непонятный... можешь ссылку кинуть на то чем ты пользуешься

HolyDel 23.08.2012 22:16

Ответ: axelynx
 
стандартным профайлером 2012-й студии. intrusive режим. быстро и качественно. не реклама.

pozitiffcat 23.08.2012 22:32

Ответ: axelynx
 
хм.. спасибо, я 2012 еще в глаза не видел если честно =)

HolyDel 23.08.2012 22:43

Ответ: axelynx
 
Вложений: 1
ну он на самом деле такой-же и в 2010-й практически ))

вроде все что нужно в нем есть:
Вложение 17495

HolyDel 26.08.2012 15:28

Ответ: axelynx
 
перевел перемножение матриц на SSE. правда серьезного прироста производительности это не дало.


Часовой пояс GMT +4, время: 11:08.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot