Текст

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Текст

Сообщение |( () ( T |/| |( » 03.11.2006 (Пт) 15:49

Проблева в том, что не могу установить цвет, получаеться только градации чёрног, в чем проблема?
Код: Выделить всё
Function Main_CreateD3DXFont(ByVal fontname As String, Optional size As Currency = 8, Optional bold As Boolean = False, Optional italic As Boolean = False, Optional strikethrough As Boolean = False, Optional underline As Boolean = False) As D3DXFont
    Dim fnt As IFont
    Set fnt = New StdFont
    With fnt
        .size = size
        .Name = fontname
        .bold =  bold
        .italic = italic
        .strikethrough = strikethrough
        .underline = underline
        Set Main_CreateD3DXFont = d3dx.CreateFont(dev, .hFont)
    End With
    Set fnt = Nothing
End Function
Sub Render_Text(ByVal font As D3DXFont, ByVal text As String, ByVal x As Single, ByVal y As Single, Optional Color As Long = -1)
    Dim RECT As RECT
    With RECT
        .Left = x
        .Top = y
    End With
    font.DrawTextW text, Len(text), RECT, 0, Color
End Sub
С=[::::::::::> ™ e398wallpapers.narod.ru

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 03.11.2006 (Пт) 15:59

Dim Font As D3DXFont
Dim r As RECT
Dim fnt As IFont
Set fnt = New StdFont
fnt.Name = "Arial cir"
fnt.Size = 50
fnt.Bold = True
Set Font = D3DX.CreateFont(D3DDevice, fnt.hFont)
With r
.Left = 100
.Top = 100
End With
Font.Begin
Font.DrawTextW "GAME", 4, r, 0, &H9922FFFF
Font.End

вот так работает у меня


Хотя и твой вариант работает :?

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 03.11.2006 (Пт) 17:40

Разобрался. надо D3DColorRGBA для цвета использовать. (тогда и твой и мой работает нормально.)

Вопрос по тойже теме: Можно ли обойтись без "fnt As IFont" ли нет?
С=[::::::::::> ™ e398wallpapers.narod.ru

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 03.11.2006 (Пт) 17:58

Нет. Иначе HFONT не получишь.
Изображение

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 03.11.2006 (Пт) 19:05

keks-n
Впринципе возможно))))) :)
#define ROFL 0xDDDD

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 03.11.2006 (Пт) 19:42

Не понял? D3DX.CreateFont принимает хэндл на системный объект шрифта. Создаёть его можно 2-мя API: CreateFont и CreateFontIndirect. При создании StdFont создавемый объект вызывает одну из них. Однако интерфейс StdFont не подразумевает получения хэндла на системный объект шрифта. Однако объект поддерживает интерфейс IFont, через который системный хэндл получить можно, что и продемонстрировано в коде. Как ещё ты собрался работать я не знаю, разве что напрямую к API, что не удобно.
Изображение

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 03.11.2006 (Пт) 23:07

keks-n
никто не говорит про удобство я говорю вообще :)
#define ROFL 0xDDDD

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 03.11.2006 (Пт) 23:12

Что по твоему лучше: относительно встроенными в язык средствами или внешним, геморным API?
Изображение

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 04.11.2006 (Сб) 0:43

keks-n
Впринципе возможно))))) :)
#define ROFL 0xDDDD

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 04.11.2006 (Сб) 19:03

Ктонибуть может выложить пример создания (инициализации) шривта, средствами API, чтобы можно было не подключать "OLE Automation"?

P.S. Чтобы не создавать новую тему, задам здесь. Как вклучить Анизатропную фильтрацию?
С=[::::::::::> ™ e398wallpapers.narod.ru

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 04.11.2006 (Сб) 23:44

чтобы можно было не подключать "OLE Automation"?

А смысл? stdole2.tlb однозначно компилится вместе с EXE, причём не вся, а только то, что нужно. Таскать с собой её не надо, да и большинство TLB её импортируют.
Изображение

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 05.11.2006 (Вс) 15:45

|( () ( T |/| |(
Ты об этом?:

Код: Выделить всё
Private Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long
Private Declare Function RemoveFontResource Lib "gdi32" Alias "RemoveFontResourceA" (ByVal lpFileName As String) As Long
......
  AddFontResource "EURAN___.TTF"
......
  RemoveFontResource "EURAN___.TTF"
......

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 06.11.2006 (Пн) 18:24

Mikle, как я понял это добовление своего шрифта. А я имел ввиду другое. Ну я так поняль что через API, размер будет больше чем через "OLE Automation". Хотя пример полезный)
С=[::::::::::> ™ e398wallpapers.narod.ru

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 06.11.2006 (Пн) 19:25

Ну я так поняль что через API, размер будет больше чем через "OLE Automation"

Там свои единицы, зависимые от разрешения экрана, вроде.
Изображение


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

    TopList