Здравствуйте, гость ( Вход | Регистрация )

35 страниц V « < 6 7 8 9 10 > »   
Ответить в эту темуОткрыть новую тему
> Помогите освоить LUA
sutra
сообщение 18.11.2018, 13:38
Сообщение #141


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Правильность поиска пока не проверял, потестил чисто на скорость. Прирост более чем в 10 раз, точнее 11,8. На моём камушке 50 000 000 пикселей в секунду.

Скрин 900х900, получаю весь массив за 16 тысячных, результат более чем приемлемый.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 18.11.2018, 14:05
Сообщение #142


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Код
           type                 init   sumC   sumLua
lua                        :    7.750 1.040  1.107
int8_t                     :    0.380  0.676  0.648
char                       :    0.372  0.703  0.620
uint8_t                    :    0.358  0.641  0.659
unsigned char              :    0.363  0.655  0.686
int16_t                    :    0.387  0.665  0.620
short                      :    0.407  0.630  0.663
uint16_t                   :    0.375  0.659  0.621
unsigned short             :    0.405  0.653  0.621
int32_t                    :    0.414  0.663  0.688
int                        :    0.373  0.691  0.632
long int                   :    0.392  0.656  0.694
uint32_t                   :    0.381  2.270  1.083
unsigned int               :    0.416  2.285  1.144
unsigned long int          :    0.376  1.436  1.051
int64_t                    :    0.897  1.352  1.062
long long int              :    0.878  1.311  1.107
uint64_t                   :    0.931  1.354  1.134
unsigned long long int     :    0.960  1.279  1.081
float                      :    0.391  1.290  0.958
double                     :    0.439  0.729  0.762
Время перебора пустого for :    0.355


На пустом переборе - худший результат. Но слава богу не самый худший.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 18.11.2018, 16:10
Сообщение #143


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Ну в общем чего я так интуитивно боялся, то и происходит. Проблема в совместимости СИ-шных и LUA-шных структур. Причём вешает LUA наглухо, только перезагрузка Пилота.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.11.2018, 23:24
Сообщение #144


***********

Модератор UOPilot
Сообщений: 9.764
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29941
Пользователь №: 11.279



Цитата
Ну в общем чего я так интуитивно боялся, то и происходит. Проблема в совместимости СИ-шных и LUA-шных структур. Причём вешает LUA наглухо, только перезагрузка Пилота.

хотелось бы какой-то конкретики. В lua нет структур кстати. В том, то luajit кривой у меня очень большие сомнения.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 19.11.2018, 8:57
Сообщение #145


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Код

--lua
local ffi = require "ffi"
ffi.cdef[[
typedef struct { uint16_t x; uint16_t y; uint8_t red; uint8_t green; uint8_t blue; } rgba_pixel;
]]
function FindRGB(addr,len,scrX1,scrY1,fx1,fy1,fx2,fy2,usl,numf)                                  -- Функция поиска RGB в области памяти
  -- addr,len : адрес в памяти и длина строки в памяти (те, что даёт getimage)
  -- scrX1,scrY1 : координаты верхнего левого угла скрина в памяти, аналогичны координатам getimage (конечные X и Y не требуются)
  -- fx1,fy1,fx2,fy2 : координаты поиска, абсолютные относительно рабочего окна. Обязательно должны быть внутри диапазона скрина.
  -- usl : условие поиска ОДНО, по принципу ужесточения параметров "R(0-255) G(70-90) B(50) R-G[10 80] R-B[-40 -20] G-B[15]" (G-B[15] идентично G-B[15 255] - разность
  -- между каналами с возможностью интервала)
  -- numf : максимальное количество искомых пикселей
  local rmem = require "ffi".cast
  local n=(fx2 - fx1+1)*(fy2-fy1+1)          -- если будет работать, сделать минимум по параметру numf
  local arr = ffi.new("rgba_pixel[?]", n )
  local _,_,r1,r2=usl:find("R%((%d+)%-*(%d*)")  r1,r2=tonumber(r1),tonumber(r2)                    -- Получение синтаксических значений поиска по каналу RED
  local _,_,g1,g2=usl:find("G%((%d+)%-*(%d*)")  g1,g2=tonumber(g1),tonumber(g2)                    -- Получение синтаксических значений поиска по каналу GREEN
  local _,_,b1,b2=usl:find("B%((%d+)%-*(%d*)")  b1,b2=tonumber(b1),tonumber(b2)                    -- Получение синтаксических значений поиска по каналу BLUE
  local _,_,RG1,RG2=usl:find("R%-G%[(%-*%d+)%s*(%-*%d*)")  RG1,RG2=tonumber(RG1),tonumber(RG2)
  local _,_,RB1,RB2=usl:find("R%-B%[(%-*%d+)%s*(%-*%d*)")  RB1,RB2=tonumber(RB1),tonumber(RB2)
  local _,_,GB1,GB2=usl:find("G%-B%[(%-*%d+)%s*(%-*%d*)")  GB1,GB2=tonumber(GB1),tonumber(GB2)
  if r1==nil then  r1,r2=0,255  else  if r2==nil then  r2=r1  end  end
  if g1==nil then  g1,g2=0,255  else  if g2==nil then  g2=g1  end  end
  if b1==nil then  b1,b2=0,255  else  if b2==nil then  b2=b1  end  end
  if RG1==nil then  RG1,RG2=-255,255  else  if RG2==nil then  RG2=255  end  end
  if RB1==nil then  RB1,RB2=-255,255  else  if RB2==nil then  RB2=255  end  end
  if GB1==nil then  GB1,GB2=-255,255  else  if GB2==nil then  GB2=255  end  end
  local k,indY,ind,r,g,b=0
  for i=fy1,fy2 do
    indY=addr+(i-scrY1)*len
    for j=fx1,fx2 do
      ind=indY+(j-scrX1)*3
      b=rmem("unsigned char*", ind)[0]
      g=rmem("unsigned char*", ind+1)[0]
      r=rmem("unsigned char*", ind+2)[0]
      if r>=r1 and r<=r2 and g>=g1 and g<=g2 and b>=b1 and b<=b2 and r-g>=RG1 and r-g<=RG2 and r-b>=RB1 and r-b<=RB2 and g-b>=GB1 and g-b<=GB2 then
        k=k+1  arr[k].x=j  arr[k].y=i  arr[k].red=r  arr[k].green=g  arr[k].blue=b
        if numf==k then  return arr  end
      end
    end
  end
  return arr
end

log "clear" log "mode compact"
local addr, width, height, len = getimage (0, 0, 9, 9)
local vi={}
tmm = os.clock()
for i=1, 300 do
  vi=FindRGB(addr,len,0,0,0,0,9,9,"R(0-255)",10000000)
end
log(os.clock()-tmm)
deleteimage(addr)
log(#vi)             -- ошибка, если заремарить - ошибка закрытия lua


С мелочами пока не стал разбираться, пробовал делать однотипными элементы таблицы - результат тот же. Пробовал вообще делать таблицу глобальной - результат тот же. Пробовал запускать пример - всё работает. Причины ошибок мне не понятны.

По логике - проблема вроде как в размерности таблицы.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 19.11.2018, 9:23
Сообщение #146


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



set timer3
set %arr[1 1] #WR // рабочее окно
save_array %arr "a:\_find.txt" // на RAM
start_script 8 wait // вызов 2-х файндов, более сотни ифов и собственно getimage
load_array %res "a:\_res.txt"
set #res1 %res[1 1]
set #res2 %res[1 2]
set #res3 %res[1 3]
set #tmp timer3
hint (28 (#res1 #res2 #res3 Время : #tmp)) // 19 - 26 тысячных

Дарк, собственно меня и старый вариант устраивает, так что если и не получится, я не расстроюсь.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 19.11.2018, 10:56
Сообщение #147


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Цитата
В том, то luajit кривой у меня очень большие сомнения.


Прикол ещё в том, что в какой-то момент времени вроде всё работало, но восстановить этот рабочий вариант так и не смог. А всё, что работает не стабильно, я всегда избегаю.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.11.2018, 1:03
Сообщение #148


***********

Модератор UOPilot
Сообщений: 9.764
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29941
Пользователь №: 11.279



Цитата
log(#vi) -- ошибка, если заремарить - ошибка закрытия lua

Дык конечно ошибка =) Вы пытаетесь получить размер массива си структур оператором который возвращает размер массива луа(он по сути является скрытым полем таблицы). Я более того скажу, даже если вы попытаетесь получить размер массива внутри си, то у вас будут те же самые проблемы. Дело в том, что массив созданный даже в нормальной си-программе в пределах одной функции передается в другую функцию по указателю/ссылке (суть одна и та же - просто адрес в памяти 32/64 бита в зависимости от разрядности). Это приводит к тому, что создав массив в функции А мы не можем получить его размер в функции В, т.к. в функцию В прилетает только адрес этого массив. Размер в таком случае передается дополнительной переменной. На самом деле мой косяк - хотел предупредить и забыл.

Сообщение отредактировал DarkMaster - 20.11.2018, 1:05


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 20.11.2018, 1:12
Сообщение #149


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Перевёл ещё один "хитрый" блок на lua, всё чудно работает, теперь не думаю про дополнительные операторы (if и for). Усилил логику за счёт добавления ифов и форов и за счёт расширения диапазона проверок и количества вызова файнда, всё мгновенно и точно на 100%. Как и обещал, да хоть блоху. Улучшился анализ временнЫх параметров, по факту время тратится только на getimage. Но за один такой вызов "высасываю" максимум возможного, да ещё и с предсказанием дальнейших действий.

Цитата
Вы пытаетесь получить размер массива си структур

Если заремарить - ошибка закрытия lua.


Цитата
Дык конечно ошибка

Дарк, у меня нет сомнений, что косячу я, у меня нет сомнений, что можно сделать ВСЁ. Но только как это сделать я пока не знаю.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.11.2018, 1:16
Сообщение #150


***********

Модератор UOPilot
Сообщений: 9.764
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29941
Пользователь №: 11.279



Код
print = log
print "clear"
print "mode compact"

local ffi = require "ffi"
local rmem = ffi.cast
ffi.cdef[[
typedef struct { uint16_t x; uint16_t y; uint8_t red; uint8_t green; uint8_t blue; } rgba_pixel;
]]
function FindRGB(addr,len,scrX1,scrY1,fx1,fy1,fx2,fy2,usl,numf)                                  -- Функция поиска RGB в области памяти
--   addr,len : адрес в памяти и длина строки в памяти (те, что даёт getimage)
--   scrX1,scrY1 : координаты верхнего левого угла скрина в памяти, аналогичны координатам getimage (конечные X и Y не требуются)
--   fx1,fy1,fx2,fy2 : координаты поиска, абсолютные относительно рабочего окна. Обязательно должны быть внутри диапазона скрина.
--   usl : условие поиска ОДНО, по принципу ужесточения параметров "R(0-255) G(70-90) B(50) R-G[10 80] R-B[-40 -20] G-B[15]" (G-B[15] идентично G-B[15 255] - разность
--   между каналами с возможностью интервала)
--   numf : максимальное количество искомых пикселей
  local n=(fx2 - fx1+1)*(fy2-fy1+1)          -- если будет работать, сделать минимум по параметру numf
  local arr = ffi.new("rgba_pixel[?]", n )
  local _,_,r1,r2=usl:find("R%((%d+)%-*(%d*)")  r1,r2=tonumber(r1),tonumber(r2)                    -- Получение синтаксических значений поиска по каналу RED
  local _,_,g1,g2=usl:find("G%((%d+)%-*(%d*)")  g1,g2=tonumber(g1),tonumber(g2)                    -- Получение синтаксических значений поиска по каналу GREEN
  local _,_,b1,b2=usl:find("B%((%d+)%-*(%d*)")  b1,b2=tonumber(b1),tonumber(b2)                    -- Получение синтаксических значений поиска по каналу BLUE
  local _,_,RG1,RG2=usl:find("R%-G%[(%-*%d+)%s*(%-*%d*)")  RG1,RG2=tonumber(RG1),tonumber(RG2)
  local _,_,RB1,RB2=usl:find("R%-B%[(%-*%d+)%s*(%-*%d*)")  RB1,RB2=tonumber(RB1),tonumber(RB2)
  local _,_,GB1,GB2=usl:find("G%-B%[(%-*%d+)%s*(%-*%d*)")  GB1,GB2=tonumber(GB1),tonumber(GB2)
  if r1==nil then  r1,r2=0,255  else  if r2==nil then  r2=r1  end  end
  if g1==nil then  g1,g2=0,255  else  if g2==nil then  g2=g1  end  end
  if b1==nil then  b1,b2=0,255  else  if b2==nil then  b2=b1  end  end
  if RG1==nil then  RG1,RG2=-255,255  else  if RG2==nil then  RG2=255  end  end
  if RB1==nil then  RB1,RB2=-255,255  else  if RB2==nil then  RB2=255  end  end
  if GB1==nil then  GB1,GB2=-255,255  else  if GB2==nil then  GB2=255  end  end

  local k,indY,ind,r,g,b=-1
  for i=fy1,fy2 do
    indY=addr+(i-scrY1)*len
    for j=fx1,fx2 do
      ind=indY+(j-scrX1)*3
      b=rmem("unsigned char*", ind)[0]
      g=rmem("unsigned char*", ind+1)[0]
      r=rmem("unsigned char*", ind+2)[0]
      if r>=r1 and r<=r2 and g>=g1 and g<=g2 and b>=b1 and b<=b2 and r-g>=RG1 and r-g<=RG2 and r-b>=RB1 and r-b<=RB2 and g-b>=GB1 and g-b<=GB2 then
        k=k+1
        arr[k].x=j
        arr[k].y=i
        arr[k].red=r
        arr[k].green=g
        arr[k].blue=b
        --k=k+1 arr[k].x=j  arr[k].y=i  arr[k].red=r  arr[k].green=g  arr[k].blue=b
        if numf==k then  return arr, k  end
      end
    end
  end
  log(k)
  return arr, k
end

log "clear" log "mode compact"
local addr, width, height, len = getimage (0, 0, 9, 9)
local vi, k={}
tmm = os.clock()
for i=1, 300 do
  vi, k=FindRGB(addr,len,0,0,0,0,9,9,"R(0-255)",10000000)
end
log(os.clock()-tmm)
deleteimage(addr)
log(type(vi))             -- ошибка, если заремарить - ошибка закрытия lua
log(k)

log "done."

Исправлена ошибка с выходами за пределы массива.
k - ранее объявлялся равным нулю, затем при первой же итерации перед записью данных происходил инкремент:
k = k + 1
Что в итоге приводило выходу за пределы массива на 1 элемент в хвосте.
Добавлен возврат количества совпадений:
if numf==k then return arr, k end
return arr, k
добавлено получение количества совпадений:
vi, k=FindRGB
изменено для понимания происходящего:
log(type(vi)) -- ошибка, если заремарить - ошибка закрытия lua
Обратите внимение на возвращаемый типа - cdata. Не table.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 20.11.2018, 1:19
Сообщение #151


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Спасибо, буду пробовать. Я просто многого не знаю, как всё это "фунциклирует", поэтому всё методом тыка.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.11.2018, 1:22
Сообщение #152


***********

Модератор UOPilot
Сообщений: 9.764
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29941
Пользователь №: 11.279



Еще раз обращаю внимание на то, что это Сишный массив. Т.е. индекс первого элемента равен нулю. Возвращается не "размер"(k), а номер последнего индекса в массиве. Т.е. элементов у нас 100, но k вернет 99, т.к. записаны данные в индексах 0-99. Если есть желание можно сделать +1 в return, но есть ли в этом смысл не понятно, т.к. если будете работать с данным масивом то в первом же переборе нужно будет делать -1.

Цитата
Я просто многого не знаю, как всё это "фунциклирует", поэтому всё методом тыка.

Ну вот чтобы не методом тыка я стараюсь давать ответ чуть шире, чтобы было понимание происходящего. Тут запамятовал написать про размеры.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 20.11.2018, 1:30
Сообщение #153


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Цитата
return arr, k

Ну про эту вещь я тоже думал. Только я не совсем понял, получается первый элемент таблицы с индексом НУЛЬ?

Спасибо, пока я спрашивал, ответ получен.

А всё-таки, хоть я и неуч, но оказался прав, есть всё-таки проблемы с совместимостью. Если честно, то меня эти нули и единицы всегда раздражали, правильнее, если по уму, то наверное единица, поскольку нуль - это собственно говоря НИЧЕГО. Но булева алгебра накладывает отпечаток, так-как и нуль является информацией.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.11.2018, 1:36
Сообщение #154


***********

Модератор UOPilot
Сообщений: 9.764
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29941
Пользователь №: 11.279



Цитата
получается первый элемент таблицы с индексом НУЛЬ

в Си таблице - да, в lua - нет.
Цитата
А всё-таки, хоть я и неуч, но оказался прав, есть всё-таки проблемы с совместимостью.

Вам дали интерфейс к другому языку программирования. Вполне логично, что другой язык имеет свои законы и особенности. Едва ли это вопрос совместимости.

Сообщение отредактировал DarkMaster - 20.11.2018, 1:36


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 20.11.2018, 1:42
Сообщение #155


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Цитата
Едва ли это вопрос совместимости

Ну спорить не стану, но думаю, что если я на эти грабли наступил, а полным дурнем я себя не считаю, то и многие другие наступят или уже ...

Конечно нужно базовое образование. Но вот только за 30 лет всё ушло на столько вперёд ... А что будет ещё через 30 лет - мозги будут кипеть и охлаждать их будут кулером, управлять которым будет микрочип. Сдаётся мне будут не люди, а биороботы. Вообще-то в своё время не зря разрабатывались стандарты, не просто так принимали систему мер и весов СИ. И не зря учили ВСТИ (взаимозаменяемость, стандартизация ...)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 20.11.2018, 2:26
Сообщение #156


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Дарк, извини меня, я тут немножко вспылил и начал права качать, на самом деле, спасибо тебе, что "возишься тут со мной", да ещё и за бесплатно.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 20.11.2018, 2:39
Сообщение #157


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



На самом деле тема уже не актуальна. Поскольку ридмем не тормозит, лично у меня уже нет необходимости получать результат поиска файндом в виде массива. Улучшить можно, но только, как я уже говорил, теперь медленный только get, а эти "крохи" выигрыша в виде нескольких микросекунд погоды не делают. Ты помог решить вопрос, СПАСИБО, научил наперёд, СПАСИБО. Пока попробую сам поковыряться. В конце концов, у меня нет цели изучать СИ, я не собираюсь писать свой кликер, меня вполне устраивает Кнайтовский, за что и ему СПАСИБО!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.11.2018, 2:43
Сообщение #158


***********

Модератор UOPilot
Сообщений: 9.764
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29941
Пользователь №: 11.279



Цитата
Дарк, извини меня, я тут немножко вспылил и начал права качать, на самом деле, спасибо тебе, что "возишься тут со мной", да ещё и за бесплатно.

Я даже корзину форума поднял, благо админка есть. Я хз где вы вспылили) Мной не обнаружено, идем дальше =)

Цитата
эти "крохи" выигрыша в виде нескольких микросекунд погоды не делают.

Не загадывайте. Когда нужно будет делать не один анализ, а десяток, а то и больше подряд на больших площадях, то поймете, что оказывается работает все не так быстро, как хотелось бы. Я тоже считал современный финдимидж в сочетании с гетимиджем невероятно быстрым. Ровно до того момента, как понадобилось искать ~200 изображений. Причем и область то была не большой, но тормоз дикий вышел и плясал я долго потом.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 20.11.2018, 3:10
Сообщение #159


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



ОК.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.11.2018, 12:31
Сообщение #160


***********

Модератор UOPilot
Сообщений: 9.764
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29941
Пользователь №: 11.279



Меня больше заинтересовала возможность подлкючения dll'ок сишных напрямую без долбанных оберток луашных. Пока достижения правда не очень... В качестве примера попробовал загрузить и выполнить свою же дллку для работы с double из пилота, но подгрузив ее через ffi. ffi сказал гордо, что вызов таких функций, как в моей дллке пока еще не держит, но только пока. Что именно ему там не понравилось я хз. Zlib1 из обучалки прилинковался и даже работает. Тем не менее в первую очередь лично мне интересна возможность линковки qt или wxwidgets. Попробовал wx - не находит функции вроде как, хотя биндинг сделал. Идеи?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

35 страниц V « < 6 7 8 9 10 > » 
Ответить в эту темуОткрыть новую тему
10 чел. читают эту тему (гостей: 10, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 15.9.2025, 17:09
Designed by Nickostyle