|
02.10.2008, 16:10
|
#1
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Проблема со шрифтом в DX9
Пишу свой 3Д двиг на С++ c юзаньем DX9 для Blitz3D. Все шло нормально пока в один прекрасный день после создания функции загрузки шрифта, и рисования текста ( их код ниже ) все стало лагать(пишет Memory Access Violation ( самое подробное описание проблемы )). Деклс библы проверил все правильно ( вроде бы )( его код тоже покажу ).
Собсно функция создания шрифта и рисования такие
#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
плиз помогите, а то застопорился на такой х**не
__________________
|
(Offline)
|
|
02.10.2008, 16:23
|
#2
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Re: Проблема со шрифтом в DX9
Ладно для большей наглядности вот полный набор исходняков движка
__________________
|
(Offline)
|
|
03.10.2008, 14:11
|
#3
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: Проблема со шрифтом в DX9
у тебя поле структуры fnt и имя шрифта в Блиц3Д тож fnt !! мож они как-то несопоставими !! попробуй в Блиц3Д другое название шрифта !!
PS: ничего утверждать немогу т.к. не могу проверить, несмотрия на наличие исходников !!
|
(Offline)
|
|
03.10.2008, 21:20
|
#4
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Re: Проблема со шрифтом в DX9
спасибо, проверю
__________________
|
(Offline)
|
|
07.10.2008, 14:17
|
#5
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: Проблема со шрифтом в DX9
mr.DIMAS, ну как, оно ??
|
(Offline)
|
|
08.10.2008, 17:10
|
#6
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Re: Проблема со шрифтом в DX9
хер*во! не работает! бьюсь бьюсь не как не добьюсь
__________________
|
(Offline)
|
|
11.10.2008, 16:48
|
#7
|
Знающий
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений (для 43 пользователей)
|
Ответ: Проблема со шрифтом в DX9
Сообщение от IGR
у тебя поле структуры fnt и имя шрифта в Блиц3Д тож fnt !! мож они как-то несопоставими !! попробуй в Блиц3Д другое название шрифта !!
PS: ничего утверждать немогу т.к. не могу проверить, несмотрия на наличие исходников !!
|
Бред ! Он возвращает не имя же,а индекс шрифта...
А теперь не потеме маленько:
mr.DIMAS ,не юзаю структуры для обьектов тима mesh и т.д ,юзай классы,да RenderWorld слишком стрёмный,сделай SceneNode"ы ну или как это в блице завётся Entity"ии,
И ещё - сделайн ормальный класс шрифтов а не создавай стек с шрифтами и возвращая их индекс.
Вчём прикол?:
fnt=DX9LoadFont("Courier")
DX9Text 10,10,fnt
нафига заместо текста ты передаеш индекс шрифта?
Тогда уж так:
fnt=DX9LoadFont("Courier")
DX9Text 10,10,"TEXT , TEXT , TEXT"
Последний раз редактировалось Genius, 11.10.2008 в 20:15.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:39.
|