Перейти к содержанию
Fire Monkey от А до Я

Mars M

Пользователи
  • Постов

    63
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Весь контент Mars M

  1. Разобрался, ошибка была в моем коде При заполнении индексных буферов в какой то момент закрадывалась ошибка. Всем спасибо. PS: Но все хотелось бы для себя прояснить, нужно ли ограничивать размер буфера векторов, если да то от чего отталкиваться при выборе размера.
  2. Шутку оценил, смешно Но перед тем как поднимать тему все перепроверил. В общем у меня так. Есть текстовый файл в котором находятся координаты, выглядит вот так: X-39.064 Y-17.289 Z-1.565 X-38.971 Y-17.382 Z-1.474 X-38.693 Y-17.660 Z-1.327 X-38.508 Y-17.845 Z-1.326 X-38.322 Y-18.030 Z-1.434 X-38.137 Y-18.216 Z-1.705 X-38.044 Y-18.308 Z-1.858 X-37.952 Y-18.401 Z-2.069 X-37.859 Y-18.494 Z-2.242 X-37.767 Y-18.586 Z-2.379 Каждая строчка это конец линии, она же начало для следующей. Моя задача распарсить этот список, взять нужное и загнать в буфер вершин. Для удобства сперва добавляю каждую координату в TList<TPoint3D> ListVert.Add(Point3D(sX, sY, sZ)); после того как список заполнился сохраняю его в файл для проверки. Все нужные координаты на месте. Потом уже загоняю эти координаты в буфер вершин for i := 0 to ListVert.Count - 1 do Vert.Vertices[i] := ListVert.Items[i]; после чего опять сохраняю все вершины в файл, тоже все норм, все вершины на месте. Ну а потом просто отрисовываю Context.DrawLines(Vert, Ind, MatBlue, 1); Весь код приводить не имеет смысла, там только парсинг файла, ну а так как я проверяю уже после парсинга там все нормально. Такая проблема именно там где много вершин, с остальными проблем нету, по этому я и подумал может какие есть ограничения в FMX.
  3. Подниму тему. Вопрос так и не решен. Разбил буфер индексов на части, все равно проблема с не полностью отрисовкой. Отрисовываю все линиями(DrawLines), вот нормально отрисованная модель, длина векторов(Length) = 18155. Вот та же модель но отрисованна из большего количества линий. Отрисована не вся, меньше половины. Там где кончается зеленная линия должна быть середина. У этой модели длина векторов(Length) = 253142 Вот тут вот похожая проблема http://qc.embarcadero.com/wc/qcmain.aspx?d=109989 но вроде уже пофиксина. Там пишут что в XE2 все работало при длине векторов 1000000. Вобщем не знаю уже в какую сторону копать. Может кто что посоветует
  4. Сейчас пойдут возможно глупые вопросы Я всегда использовал ListBox, он мне всем нравился, я в нем и рисовал, выводил текст как мне нужно и заполнял разными данными. Например сделать что то типа такого не составляет никакого труда: Но сейчас рекомендуют LIstView и он действительно быстрее, но вот пока только одни сложности с ним, но думаю разберусь Можно сразу создать необходимое количество пустых итемов или в цикле добавлять по одному? ListView1.BeginUpdate; for i := 0 to List.Count - 1 do begin LVItems := ListView1.Items.Add; ... end; ListView1.EndUpdate; Потому что так у меня тоже достаточно долго добавляются итемы. Количество строк которые нужно добавлять могут быть очень большими, в данный момент например экспериментирую с 253146 строк. Вобщем пока я это дело отложил и оставил как есть. Во первых когда пользователь грузит такой большой файл(текстовый) то он должен понимать что займет какое то время на его обработку. Во вторых, решил оставить подобные оптимизации на потом, на основную работу программы они все равно не влияют.
  5. Наверное так и сделаю, Родной скрою и прикручу TScrollBar.
  6. Загружаю большой список в ListView, время загрузки где то 5-7 секунд. Это много, по этому переделал что бы список загружался динамически, как к концу пролистывается, подгружаются новые данные. Все бы хорошо, но вот ScrollBar при загрузке новых данных меняет размер и позицию. Это не очень нравиться Можно как то заранее настроить его размер под конечное число итемов? Или может как то по другому сделать.
  7. Здравствуйте. Мне нужно создать ~250000( а то и много больше) вершин и в два раза больше индексов, ошибок нету но отрисовываются только чуть больше половины. С 20000-30000 вершин проверял, все нормально, то есть код рабочий. Скорее всего дело что слишком много вершин и-или индексов. Есть какие ограничения, кроме системных в данном случае и как оптимально сделать?
  8. Mars M

    TImage Stretch

    Мне нужно отображать потоковое видео, по этому TMediaPlayerControl не подходит. Использую libvlc. Начал делать в VCL с выводом видео через OpenGL, работает все нормально. Но решил перенести проект в FMX, что бы сделать красивые панели, менюшки и все такое Да и в итоге сделать под андроид. Но в FMX постоянно вылетает при изменение размера формы(и в месте с ним TImage). Ошибка все время в функции GetSceneScale в FMX.Forms function TCustomForm.GetSceneScale: Single; begin Result := Handle.Scale; end; За основу взял PasLibVlc, после некоторых переделок стало получше с вылетами. Попробую сделать именно так, только вот думаю что если самому ресайзить изображение до вывода в TImage, то все это будет делать средствами процессора. А я специально от это избавлялся в libvlc.
  9. Mars M

    TImage Stretch

    Прошу совета. Использую TImage для вывода видео, то есть примерно 25 раз в сек меняю изображение. Сейчас делаю так - само изображение равно оригинальному размеру кадра. У TImage установлено свойство Strech и в зависимости от режима отображение(вписать по горизонтали, вертикали, 4;3, 16;9 итд) меняю размер и положение TImage. Вопрос в том, как лучше сделать, так как есть или лучше менять размер самого изображения а TImage просто растянуть на всю форму? Как правильней? Для меня важно что бы меньше нагружало процессор и желательно что бы все преобразования происходили в GPU.
×
×
  • Создать...