Начал копать библиотеку уроков по тому как работает OpenGL и не могу разобраться с одним методом.
Ссылка на курс: https://github.com/ssloy/tinyrenderer/wiki
Ссылка на код: https://github.com/ssloy/tinyrenderer.git
bool TGAImage::unload_rle_data(std::ofstream &out) {//unload the compesed image map
const unsigned char max_chunk_length = 128;//max длинна куска
unsigned long npixels = width*height;
unsigned long curpix = 0;
while (curpix<npixels) {
unsigned long chunkstart = curpix*bytespp;//начальный кусок
unsigned long curbyte = curpix*bytespp;
unsigned char run_length = 1;
bool raw = true;
while (curpix+run_length<npixels && run_length<max_chunk_length) {
bool succ_eq = true;
for (int t=0; succ_eq && t<bytespp; t++) {
succ_eq = (data[curbyte+t]==data[curbyte+t+bytespp]);
}
curbyte += bytespp;
if (1==run_length) {
raw = !succ_eq;
}
if (raw && succ_eq) {
run_length--;
break;
}
if (!raw && !succ_eq) {
break;
}
run_length++;
}
curpix += run_length;
out.put(raw?run_length-1:run_length+127);
if (!out.good()) {
std::cerr << "can't dump the tga file\n";
return false;
}
out.write((char *)(data+chunkstart), (raw?run_length*bytespp:bytespp));
if (!out.good()) {
std::cerr << "can't dump the tga file\n";
return false;
}
}
return true;
}
Насколько я понял это алгоритм кодирования данных и записи их в файл формата .tga. То есть берут массив Data (карту цветов) и совершая над ней какие-то манипуляции пихают в файл, но какие манипуляции я понять не смог.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Интересует, как можно получить доступ к элементу map'ы с индексом iНо! К примеру, при перебирании map'ы при помощи итерататора она отсортирована...
Когда пытаюсь прочитать значение карты map в методе класса с помощью map[key], то получаю непонятную ошибку
В общем в одном из алгоритмов потребовалось вычислять квадратный корень из суммы квадратов двух аргументовКазалось бы, всё просто и я написал...