forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   blitz3D + OpenGL (http://forum.boolean.name/showthread.php?t=12334)

Reks888 21.04.2010 23:01

Ответ: blitz3D + OpenGL
 
А если не нравится ООП, то тут благодаря синтаксису блица не умрешь. блиц позволяет сделать через жопу все что угодно :-)(дык можно и без методов обойтись)

SBJoker 22.04.2010 00:20

Ответ: blitz3D + OpenGL
 
В бмаксе для олдфагов есть модуль brl.retro который позволяет кодить как в блитз3д.

Sayman 22.04.2010 07:35

Re: blitz3D + OpenGL
 
Blitz3D мне нравится, я давно с ним работаю. в том числе я на нём делаю для себя всякие конвертелки под спектрум, гляделки и прочее. но тут задумался над чем то более крупным чем прочсто конвертилка спрайтов. дх7 я уже пробовал..как то не вдохновился. а на огл всё таки, работа на более низком уровне. да и кстати да, интересно заюзать блиц + огл. я знаю что у блица тормозная арифметика, ничего страшного, некоторые пишут на си++ и прочих языках, а результат ещё тормознее, чем блиц. ооп я не люблю, а на максе, какой бы не использовал мод, ооп он и есть ооп. по поводу что не везде работает - на данный момент пока не нашол решение проблемы с фуллскрином, в окне работает на всех машинах! например, результаты таких каманд как glGetString, возвращают текущие параметры, например вендора, версия и рендер... пробовал по одной из док сделать определение возвожности заюзать glsl, отработал без труда, все функции вернули положительный результат. нвидиа цг так же определяет вероятность использования шейдеров. но шейдеры сейчас не самое важное, важно заставить пахать на весь экран. продолжаю курить, вроде выход есть, сёдня набросаю процедурку на си, посмотрим что будет...

Sayman 22.04.2010 13:28

Re: blitz3D + OpenGL
 
Вложений: 1
Собственно говоря решение проблемы частично нашол. результат прикрепляю (пример работы с CG, там самый простейший шейдер).

St_AnGer 22.04.2010 14:05

Ответ: blitz3D + OpenGL
 
Скачал, запустил. Сразу выдало MAV. Не найдена библиотека. До вылетания ошибки приложение запускается не на весь экран и в формате 16:9 с разрешением 1280х720. Библиотеки подсунуть к приложению перепробовал все нашедшиеся в моей коллекции (OpenGL32.dll, OpenGL.dll, glut32.dll и его же переименовав в OpenGL.dll). Всё равно Userlib not found.

Sayman 22.04.2010 15:39

Re: blitz3D + OpenGL
 
хххммм...и действительно, всё упёрлось во врапер оной единственной функции wrapChangeDisplaySettings, которую набросал на си. при обращении к функции, не находит файл..странно, но файл есть. проверял на нескольких компах в канторе. странное дело....
код врапа:
Код:

#include"string.h"
#include"stdlib.h"
#include"stdio.h"
#include"windows.h"
#include"gl/gl.h"

//#pragmacomment (lib,"opengl32.lib")
 
#define BBDECL extern"C"_declspec(dllexport)
#define BBCALL _stdcall

BBDECL int BBCALL wrapChangeDisplaySettings(int flags, int width, int height, char bpp, int mode, char freq)
{
int err;
DEVMODE dmScreenSettings;
memset(&dmScreenSettings, 0, sizeof(DEVMODE));
dmScreenSettings.dmSize = sizeof(DEVMODE);
dmScreenSettings.dmBitsPerPel = bpp;
dmScreenSettings.dmPelsWidth = width;
dmScreenSettings.dmPelsHeight = height;
dmScreenSettings.dmFields = flags;
dmScreenSettings.dmDisplayFrequency = freq;
 
err=ChangeDisplaySettings(&dmScreenSettings, mode);
return err;
}

функцию вызываю обычным способом:
wrapChangeDisplaySettings(DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL Or DM_DISPLAYFREQUENCY, GlWinW,GlWinH,32,CFD_FULLSCREEN, 0)
может чтото не так ещё делаю? хм...

.Squid 22.04.2010 16:24

Ответ: blitz3D + OpenGL
 
Да твоя поделка такая же кривущая, как и ксорс. Одно гавно вокруг (

Sayman 22.04.2010 16:34

Re: blitz3D + OpenGL
 
Squid, OpenGL не моя поделка если что)))
с другой стороны - умееш лучше - покажи класс!

.Squid 22.04.2010 17:41

Ответ: blitz3D + OpenGL
 
Я тоже кривущей херней занимаюсь.

Arton 22.04.2010 17:53

Ответ: blitz3D + OpenGL
 
"User lib not found" выдаёт. Может ему нужен .decls?

Sayman 23.04.2010 14:48

Re: blitz3D + OpenGL
 
ошибку выдаёт, потому что я забыл в архив положить две либы ещё - CG.DLL и CGGL.DLL
однако проблема теперь не изза этого. проверил на нескольких компах в канторе, всёровно не видит, не желает находить библиотеку wrap.dll. почему не могу понять. на моём компе и дома всё чётко. пробую избавица от враперов путём исплользования апи винды. нахрапом взять не получается. вся проблема в том. что посути надо делать там свой обработчик, функция типа WndProc долждна быть, её адрес передовать в класс окна. по этому адресу потом винда делает вызов нашего обработчика. вот тут и проблема - блиц не желает передовать в чистом виде адреса функций. был вариант использовать FastPointer, однако там тоже такая же проблема - передача адреса функции блица в Апи винды вызывает вечный цикл при выходе, переполнение стэка и как следствие - MAV...
ищу пути решения.

Arton 23.04.2010 17:18

Ответ: blitz3D + OpenGL
 
Так может для wrap.dll нужен wrap.decls? Да и для остальных либ. Ты ж с блицем работаешь...

Sayman 23.04.2010 17:21

Re: blitz3D + OpenGL
 
файл деклс требуется только на момент разработки. после компиляции его можно выкинуть! т.е. он не требуется бинарнику.

Arton 23.04.2010 17:39

Ответ: blitz3D + OpenGL
 
Честно говоря не знал... Хм, а ведь мог бы догадаться...

Sayman 27.04.2010 08:31

Re: blitz3D + OpenGL
 
ну и что? у каво есть какие соображения по теме фуллскрина? сейчас проблема вот в чём:
включается фуллскрин, но к сожалению любое аськоно окошко или какое-нить оповещение или другое всплывающее окно, сразу становица поверх нашего окна, т.е. чужое окно временно видно на нашем. это не гут. в АПИ венды ест ь такая штука, WM_KILLFOCUS, в обработчике окна. но тут тоже проблема. на блице его написать можно, но передать в апи венды нереально. на си написать тоже смутно, т.к. хз в чм дело, дома работает, а на работе нет, да и перехватывает этот сишный обработчик все события. т.е. если мы пишем на блице условие типа if keydown(key) то оно уже не будет отработано в этом случае. думаю вот, может можно как то сделать средставми блица "потерю" и возврат фокуса окна? т.е. тут надо отработать такие манипуляции как кнопка вин, или альт таб, вин таб, контрол шифт эскейп и подобные.


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

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