Проблема со шрифтом в DX9
Пишу свой 3Д двиг на С++ c юзаньем DX9 для Blitz3D. Все шло нормально пока в один прекрасный день после создания функции загрузки шрифта, и рисования текста ( их код ниже ) все стало лагать(пишет Memory Access Violation ( самое подробное описание проблемы :-D )). Деклс библы проверил все правильно ( вроде бы )( его код тоже покажу ).
Собсно функция создания шрифта и рисования такие #pragma comment(lib,"d3d9.lib") #pragma comment(lib,"d3dx9.lib") #include <d3d9.h> #include <d3dx9.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <windows.h> #include <mmsystem.h> #include <d3dx9core.h> #define BBDECL extern "C" _declspec(dllexport) #define BBCALL _stdcall struct DX9Font { LPD3DXFONT fnt; RECT r; }; DX9Font DefFont[100]; int NOF = 0; BBDECL int BBCALL DX9LoadFont(char font[]) { int ret=0; if(DefFont[NOF].fnt!=0) { DefFont[NOF].r.left=0; DefFont[NOF].r.top=0; DefFont[NOF].r.right=1280; DefFont[NOF].r.bottom=1024; D3DXCreateFontA(pd3dd,20,10,FW_NORMAL,0,true,100,N ULL,NULL,NULL,(LPCTSTR)font,&DefFont[NOF].fnt); ret=NOF; NOF+=1; }; return ret; }; BBDECL void BBCALL DX9Text(int x,int y,char text[]) { DefFont[NOF-1].r.left = x; DefFont[NOF-1].r.top = y; DefFont[NOF-1].fnt->DrawTextA(NULL,text,-1,&DefFont[NOF-1].r,DT_WORDBREAK,D3DCOLOR_XRGB(100,100,100)); }; вот деклс библы: DX9LoadFont%(font$):_DX9LoadFont@4 DX9Text(x,y,text$):_DX9Text@12 в блице пишу вот это fnt=DX9LoadFont("Courier") DX9Text 10,10,fnt плиз помогите, а то застопорился на такой х**не |
Re: Проблема со шрифтом в DX9
Вложений: 1
Ладно для большей наглядности вот полный набор исходняков движка
|
Ответ: Проблема со шрифтом в DX9
у тебя поле структуры fnt и имя шрифта в Блиц3Д тож fnt !! мож они как-то несопоставими !! попробуй в Блиц3Д другое название шрифта !!
PS: ничего утверждать немогу т.к. не могу проверить, несмотрия на наличие исходников !! :( |
Re: Проблема со шрифтом в DX9
спасибо, проверю
|
Ответ: Проблема со шрифтом в DX9
mr.DIMAS, ну как, оно ?? ;)
|
Re: Проблема со шрифтом в DX9
хер*во! не работает! бьюсь бьюсь не как не добьюсь
|
Ответ: Проблема со шрифтом в DX9
Цитата:
А теперь не потеме маленько: mr.DIMAS ,не юзаю структуры для обьектов тима mesh и т.д ,юзай классы,да RenderWorld слишком стрёмный,сделай SceneNode"ы ну или как это в блице завётся Entity"ии, И ещё - сделайн ормальный класс шрифтов :) а не создавай стек с шрифтами и возвращая их индекс. Вчём прикол?: fnt=DX9LoadFont("Courier") DX9Text 10,10,fnt нафига заместо текста ты передаеш индекс шрифта? Тогда уж так: fnt=DX9LoadFont("Courier") DX9Text 10,10,"TEXT , TEXT , TEXT" |
Часовой пояс GMT +4, время: 12:29. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot