forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   Полное искажение графики (чаще на Американских) (http://forum.boolean.name/showthread.php?t=15821)

alexsilent 10.11.2011 06:37

Полное искажение графики (чаще на Американских)
 
Вложений: 3
Ребята, всем привет!
Много лет пользуюсь Blitz Max и обнаружил, только сейчас не хилую проблему.
При тестировании нашей игры с братом, на BigFishGames, появилась
вредоносная ошибка, искажение всех спрайтов графики,
причем не сразу, а начиная с 35 уровня, и только на Viste и Семерке,
а на XP приложение выдает ошибку и закрывается.
Добавил во вложение скрины.
Самое плохое, что на всех русских компьютерах, которые тестировали,
даже у продюсера, вся графика работала идеально.
Искал и не нашел ничего подобного нигде по БлитцМаксу.
Хоть бы знать примерную причину, из-за чего может быть такое.
Самое ужасное что у меня все в порядке и невозможно проверить ошибку.(

1) (Вначале у меня была версия 1.35 - ошибка была уже тогда)
Установив новую 1.44 и перекомпилировав все модули - ошибка никуда не делась.

2) Использую dx7 модуль для рендеринга, пробовал dx9, и OpenGL - опенгл вообще не завелся и сбросился на старте.

3) Может ли как-то мой старый глючный виндовс влиять на ход компиляции?

4) Друг сказал, что может быть причина в том что у меня около 9 мб Incbin графики.

5) На русских компах, такой ошибки не возникло вообще, при 2-х недельном тестировании и вообще.

6) Глядя на скрины во вложении, кто-нибудь знает правильный термин, как назвать эту ошибку,
чтобы правильно задать вопрос в Google и найти ответ???

(я уже все перепробовал, что только мог)

7) Копипастю начало кода, может я там намудрил
Код:

Strict

Import pub.win32
Import Pub.FreeJoy
Import Pub.squall

Include "include\english_st4.bmx" 'ENG VERSION

Extern "win32"
        Function FindWindowA:Int(nullstring%,WindowText$z)
        Function ShowWindow:Int(hWnd:Int,nCmdShow:Int)
        Function ExtractIconA%(hWnd%,File$z,Index%)
        Function GetActiveWindow%()
        Function SendMessage:Int(hWnd:Int,MSG:Int,wParam:Int,lParam:Int) = "SendMessageA@16"
End Extern

Global APP_NAME$="Sky Taxi : Top Secret"

Local handle = FindWindowA(0,APP_NAME)
AppTitle = APP_NAME

If handle<>0
        ShowWindow(handle,SW_RESTORE)
        Print APP_NAME+"  "
        End
End If

' -----------------------------------------------------------------------------
' SetIcon
' -----------------------------------------------------------------------------
Function SetIcon(iconname$, TheWindow%)       
        '?Win32
        Local icon=ExtractIconA(TheWindow,iconname,0)
        Local WM_SETICON = $80
        Local ICON_SMALL = 0
        Local ICON_BIG = 1
        sendmessage(TheWindow, WM_SETICON, ICON_BIG, icon)
        '?
End Function


Global ENABLEJOY=JoyCount()
Const SAVE_NAME_CONST$="ST4_Version2"
Global OLDGW,OLDGH,OLDF

Include "include\menu.bmx"
Include "include\script.bmx"
Include "include\cheats.bmx"
Include "include\newfunction.bmx"

'NEW INCBIN
Incbin "draw\sc_m_b.jpg"
Incbin "draw\sc_m_f.png"
...и далее около 12000 строк кода :(


cyberblut 10.11.2011 09:16

Ответ: Полное искажение графики (чаще на Американских)
 
SEXI

Randomize 10.11.2011 09:45

Ответ: Полное искажение графики (чаще на Американских)
 
Такое бывает от непропорциональности текстур, хотя в bmax`е есть на этот случай хак. Сам лично ловил такие приколы, но так и не понял в чём же дело.

Странно, что не заводится под OpenGL. В проекте точно не прямых обращений именно к DirectX?

хендл окна лучше получать из первых рук:
PHP код:

Local driver:TD3D7Graphicsdriver=D3D7GraphicsDriver()
Local graphics:TD3D7Graphics=my_driver.Graphics()
Local hwnd:int graphics._hwnd '; Наш хендл 

* после Graphics.

Incbin не на что не влияет.

mauNgerS 10.11.2011 11:06

Ответ: Полное искажение графики (чаще на Американских)
 
Давненько были проблемы, но на Blitz3D+FastImage.
Изображения становились размытыми (как при плохом качестве картинки)

Оказалось виновата была анизотропная фильтрация.
В настройках видеокарты убрал и стало всё Ok.
Так было только на Radeon

Может что-то подобное?

L.D.M.T. 10.11.2011 13:03

Ответ: Полное искажение графики (чаще на Американских)
 
mauNgerS, я пытался избавиться от этой ошибки долго... сам Михаил тоже не мог решить проблему, а все оказалось довольно-таки просто - подключаешь FastExt и устанавливаешь TextureAnisotropy -2 или -1 и в настройки видюхи можно не лезть.

SBJoker 10.11.2011 13:25

Ответ: Полное искажение графики (чаще на Американских)
 
Последние двое ораторов, тут не о Blitz3D речь. А Бмаксу подобные добавки нафиг ненужны.

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


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

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