Название обобщёное, тема обширная. Для начала предисловие: Гриффитса + СДК читал, набор и назначение флагов отрисовки иконок, стрингов и т.д. знаю. Вопрос следующий: есть кнопка, она отрисовывается без использования IMAGE_USE_BRIGHT, а есть картинка, которая имеет прозрачный (в смысле СДК) фон и текстовую надпись, которая выводится комбинацией флагов IMAGE_USE_BRIGHT | IMAGE_USE_TRANSPARENCY. Т.е. замес в том, что бы иметь картинку кнопки, которая реагировала бы правильно на освещение панели, но в то же время имела надпись, которая бы была независима от этого освещения. Всё нормально, что касается функциональной части, а вот с визуальной беда. Картинки выводятся не чётко, игра с флагом IMAGE_BILINEAR_COLOR ничего не даёт. В другое время любая другая панель такими недостатками не страдает. Заметил так же, что от этого недостатка избавлены панели, написаные на ХМЛ. Что же тогда я делаю не так и как получить чёткий текст на кнопках? Решение «своя картинка для каждого статуса панели» пока не рассматривается (на самый последок его оставлю). Просто есть отличный артворк, который симом корёжится до безобразия и никак от этого не избавится.
Или даже лучше в битмап надписи включить кусочек фона. Т.е. что-бы у тебя было как можно меньше сложного прозрачного контура.
Сообщение отредактировал Kirill Konovalov: 11 Май 2012 — 02:20
Kirill Konovalov (11 Май 2012 — 02:19) писал:
Или даже лучше в битмап надписи включить кусочек фона. Т.е. что-бы у тебя было как можно меньше сложного прозрачного контура.
Ну, Кирилл, обижаешь
Мало того, ты эти глюки сам видел. С твоим предложением будет проблема в подсветке надписи ночью, ибо этот кусочек фона тоже будет подсвечиваться, это выглядит страшно. По поводу формата битмапов — ну это как бы основны
Я по простоте душевной думал, может здесь какие неписаные правила есть? Кстати, что ещё заметил, под семёркой отрисовка более мягче и чётче нежели под ХР.
Сообщение отредактировал icebear: 11 Май 2012 — 19:56
Да, есть разница в отрисовке на разных системах. более того — есть даже разница в отрисовке на одной и той-же системе, но на разных видеокартах-это я когда компьютер сменил- заметил Нвидиа и АТИ совершенно по-разному это воспроизводят…
На ХМЛ я перестал пользоваться «рисованным текстом». Если это не «лампы с фоном». Т.е. я просто избегаю «сложных огибающих». Пишу текстом напрямую, тем более — есть способ писать по-русски, если кодировать хмл в УТФ-8.
Сообщение отредактировал Kirill Konovalov: 12 Май 2012 — 00:39
icebear (10 Май 2012 — 20:22) писал:
Верхнюю картинку, чем делаешь (STATIC или ICON)?
Если STSTIC-ом — попробуй ICON с количеством битмапов — 1 (у меня всегда STSTIC один — фоновый битмап прибра). Это чисто так, предположение. Вполне возможно, что пустое.
icebear (07 Май 2012 — 18:28) писал:
Чисто тоже предположение.
Попробуй кнопку рисовать тоже с флагом IMAGE_USE_TRANSPARENCY, если есть области с нулевым цветом — забей темным, но не нулевым.
Второе.
А что если попробовать использовать не IMAGE_USE_BRIGHT, а IMAGE_USE_LUMINOUS? В доке вот что пишется:
IMAGE_USE_BRIGHT — Use this to make the image appear lit at night. Maps the element’s image colors to the section of the palette that doesn’t change during the transition from day to night. The image colors will not change.
Т.е. цвета этого битма соотносятся с палитрой, не изменяемой днем/ночью.
IMAGE_USE_LUMINOUS — Image is bright when the interior light is on.
С этим флагом цвета битмапа изменяются на яркий, в момент, когда включили освещение. Мож, по виду, так будет нормально, а использование этого флага повлияет на четкость отображения верхнего битмапа.
Все это чисто предположение, чисто танцы с бубном, но вдруг поможет.
Кстати, я не понял, когда именно у тебя нечетко рисуется верхний битмап днем, ночью или всегда?
Еще.
Чисто на всякий случай.
Флагами можно управлять на лету с помощью операций:
element->image_flags |= {Флаг}
element->image_flags &= ~{Флаг}
«element» берешь либо непосредсвенно в CallBack-е данного элемента или в CallBack-е прибора:
pgauge->elements_list[0]-> … next_element[X]-> …
Сообщение отредактировал serg_p: 13 Май 2012 — 19:55
Тут проблема не в том. Проблема как и ранее, как мне кажется, в неверной(вернее недостаточной) подготовке битмапов под стандарты гаугописания.
Я так и не смог тогда въехать что именно не так рисовалось, но рисовалось не так. Я когда сам рисую битмапы(сейчас нет разницы -хмл или не хмл) — у меня у самого есть такие проблемы часто. А вот если я беру, например, битмапы Степана- у меня таких проблем нет. В одном и том-же приборе.
Тут есть проблема в четкой отрисовке края. Почему-то например фотошоп у меня всегда дает небольшой(в 1 пиксел) черный ореол на прозрачности. а вот если я его потом Вручную прокрашиваю все ещё раз черным(уже в Индексированных цветах)- он перестает давать этот ореол.
Так что мне кажется, что дело все-же в самих битмапах.
Андрей, ради интереса, выдери какие-нибудь чужие битмапы, попробуй, которые точно работают? Если на них будут те-же проблемы- то тогда да- программная часть, а если на них все нормально, то проблема как я и предполагаю- в части художественной.
Сообщение отредактировал Kirill Konovalov: 14 Май 2012 — 04:09
Фокус с флагом люминисценции пробовал — те же яйца. Идея с двойной прозрачностью не вышла. Манипуляции с флагами иконок (да, я конечно же вывожу иконки, не статические картинки) не поможет. Я выключил сглаживание на надписях вообще. Кстати, от размера кнопок не зависит, в оригинале у нас сейчас один битмап кнопки оверхеда имеет размер 109х134 пикселей, это более чем достаточно. Я просто не могу понять систему, по которой сим отрисовывает кнопки. Ведь куча панелей с нормальной графикой. Я уже ПТ поковырял, у вас нету ни одно кнопки с такими данными, фриварные панели другие тоже поковырял. Ведь там с точки зрения кода и возможностей сделать как-то отлично от всех практически нет. Можно было это всё решить отрисовывая панель через гди, но там сразу две проблема — фпс станут раком и будет заморочка с освещением. Вобщем дальше буду искать, найду решение — сообщу.
Kirill Konovalov (14 Май 2012 — 04:07) писал:
Наверное, я неясно выразил мысль. Я советовал применить LUMINOUS не к надписи, а к кнопке.
icebear (14 Май 2012 — 13:58) писал:
А это каким флагом делается?
Сообщение отредактировал serg_p: 14 Май 2012 — 23:56
serg_p (14 Май 2012 — 22:58) писал:
Ах вот оно! Щас проверю.
Проверил, вобщем те же, только сбоку.
serg_p (14 Май 2012 — 22:58) писал:
Это от противного
Сглаживание включается IMAGE_BILINEAR_COLOR (пардон, поправил), собсно если этого флага нет — не будет и сглаживания.
Сообщение отредактировал icebear: 15 Май 2012 — 00:23
Прикрепленные изображения