тим адвайтов Опубликовано 22 января, 2016 Поделиться Опубликовано 22 января, 2016 В файле fmx.context.gles.pas есть класс TCustomContextOpenGL, а в нём процедура TCustomContextOpenGL.DoInitializeTexture(const Texture: TTexture); Вот в этой процедуре хотелось бы изменить вызовы glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); на glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); для того, чтобы текстура не натягивалась (clamp), а размножалась (tile). Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 22 января, 2016 Модераторы Поделиться Опубликовано 22 января, 2016 скопировать файлик, поменять в нем эти строки. положить в папку с проектом и подключить через project->add Цитата Ссылка на комментарий
0 тим адвайтов Опубликовано 22 января, 2016 Автор Поделиться Опубликовано 22 января, 2016 С этим файликом не компилится, хотя в у него в uses всё вроде прописано. В каком модуле объявлены переменные и функции, непонятно. Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 22 января, 2016 Администраторы Поделиться Опубликовано 22 января, 2016 Что за ошибка при компиляции? Цитата Ссылка на комментарий
0 тим адвайтов Опубликовано 22 января, 2016 Автор Поделиться Опубликовано 22 января, 2016 Например, FRenderBuf: GLuint; GLuint - "undecrared identifier". И ещё куча ошибок того же типа. Все, похоже, имеют отношение к OpenGL. Дело в том, что я привык, что в секции uses обычно есть все модули, в которых объявлены типы, но тут в толк не возьму, что ещё надо прицепить. Наверное, это зависит от целевой платформы? Компиллирую на ХЕ7+update1, под windows7. Цитата Ссылка на комментарий
0 тим адвайтов Опубликовано 22 января, 2016 Автор Поделиться Опубликовано 22 января, 2016 Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 22 января, 2016 Администраторы Поделиться Опубликовано 22 января, 2016 Потому что под Windows FireMonkey использует DirectX 11 (FMX.Context.DX11 или FMX.Context.DX9), а не OpenGL. Поэтому этот модуль вообще отсутствует под Windows. Цитата Ссылка на комментарий
0 тим адвайтов Опубликовано 22 января, 2016 Автор Поделиться Опубликовано 22 января, 2016 Да, действительно, с этим файлом компилится под андроид и запускается. Спасибо,Ярослав! Но картинка осталась прежняя, несмотря на сделанные изменения. Цитата Ссылка на комментарий
0 тим адвайтов Опубликовано 25 января, 2016 Автор Поделиться Опубликовано 25 января, 2016 Вопрос решён, хотя и не так, как хотелось бы. Надо самому заранее сделать Tile с помощью промежуточного Bitmap-а, примерно так: b:=tbitmap.Create; r:=trect.Create(0,0,b.width,b.Height); с размерами той области, куда его нужно поместить. Далее в цикле налепить исходный битмап на промежуточный.: while dh > 0 do begin ... b.CopyFromBitmap(ish.Bitmap, r, i*ish.Bitmap.Width, j*ish.Bitmap.Height); dh:= dh-ish.Bitmap.Height;... ... (то же с dw)... И, наконец, присвоить его материалу: lightmaterialsource1.Texture.Assign(; И так со всеми частями конструкции. Процедурка небольшая, но, по идее, абсолютно ненужная, если бы не глюк. Цитата Ссылка на комментарий
0 Error Опубликовано 26 января, 2016 Поделиться Опубликовано 26 января, 2016 Вопрос решён, хотя и не так, как хотелось бы. Надо самому заранее сделать Tile с помощью промежуточного Bitmap-а, примерно так: b:=tbitmap.Create; r:=trect.Create(0,0,b.width,b.Height); с размерами той области, куда его нужно поместить. Далее в цикле налепить исходный битмап на промежуточный.: while dh > 0 do begin ... b.CopyFromBitmap(ish.Bitmap, r, i*ish.Bitmap.Width, j*ish.Bitmap.Height); dh:= dh-ish.Bitmap.Height;... ... (то же с dw)... И, наконец, присвоить его материалу: lightmaterialsource1.Texture.Assign(; И так со всеми частями конструкции. Процедурка небольшая, но, по идее, абсолютно ненужная, если бы не глюк. Плохой подход, при достаточно большой требуемой текстуре оно выдаст ошибку. (1024/2048/4096 пикселей по одной из координат скорее всего, т.к. сильно зависит от видеокарты) Цитата Ссылка на комментарий
Вопрос
тим адвайтов
В файле fmx.context.gles.pas есть класс TCustomContextOpenGL, а в нём процедура
Вот в этой процедуре хотелось бы изменить вызовы
на
для того, чтобы текстура не натягивалась (clamp), а размножалась (tile).
Ссылка на комментарий
9 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.