У вас здесь нет самого главного: как вас отпустила УК. В нашем городе (Курск) от УК так просто не уйти. И по голове старшим по дому кто-то бьёт, и по голове директору конкурирующей УК, чтоб не лез, и машины кто-то обливает растворителем краски. Ну и бесконечные липовые голосования по возврату в УК. И суды, суды, суды. Порой кажущиеся просто бессмысленными.
В теории должно быть, на практике все на это забивают. Все бюллетени голосования жильцов заполнены одной рукой и одной ручкой, жители пишут заявление, что это не они -- ГЖИ по бую. Максимум вычеркнут фамилии жильцов, написавших заявление, из общего числа проголосовавших и всё. И искать никого не будут. Подчерковедческие экспертизы с поиском "виновника" затягиваются на годы, за это время рисуются новые бюллетени, и так по кругу. Были даже случаи подделки документов для суда (юристами была изменена площадь дома на ГИС ЖКХ и выдана соответствующая справка, благодаря чему не был набран необходимый процент) -- тоже никакого наказания. Прокуратура за 10 дней не смогла связаться с виновником, дело закрывает, 306 статья УК РФ не возбуждается. Практика нашей борьбы с УК показала, что законы у нас может и суровые, но очень необязательные.
Вил графика неудачный, скорее всего. Кажется, что рост начался в 21 году, хотя прибыль за 21 год наверняка посчитана уже после завершения года (то есть, в начале 22).
Кроме полигональных сеток можно описать фигуру математически. Сфера -- объём, в каждой точки которого расстояние до центра не превышают значение радиуса. Куб или прямоугольник -- все точки, которые не превышают заданные мин/макс интервалы. Так же можно описать математически множество других простых объёмных фигур, в том числе образованных из отрезков или кривых путём их выдавливания или вращения. Более сложные формы получаются из простых комбинацией математических операций, таких как булевы сложения, вычитания.
Преимущество по сравнению с полигональным моделированием:
описание занимает очень мало данных (можно хоть от руки на листочке параметры точного чертежа нарисовать);
любой параметр можно поправить в любой момент времени. У полигональных моделей если убита история, то у меша (если изменились какие-то начальные размеры) придётся очень много времени мотать туда-сюда эти вершины, объединять, разъединять, стараться сохранять общие плоскости в пространстве;
возможность конвертировать в полигоны с любой точностью. Хоть low-poly, хоть многомиллионные меши;
удобны для расчёта движения CNC. Рассчитать, находится ли точка внутри такого математического объекта или нет проще, чем перебирать миллионы полигонов;
при математическом моделировании тела всегда замкнуты, полигоны же могут иметь дыры в поверхности, не позволяя использовать для той же печати на 3д принтере.
Из-за всех этих преимуществ именно они используются инженерами и конструкторами и называются твердотельным моделированием.
Ну, тут дело не просто в qt-based ui. Поглядите на нижнюю панель с Time Slider. Он 1 в 1 как в майке, как по расположению виджетов, так и их размеру. Видимо, сознательно такое сделано, чтобы профессионалы чувствовали себя "как дома". Молодцы.
А для меня сильной стороной является аналог интерактивного добавления (git add -i), когда прямо в окне diff раскидываю, какие блоки или строки изменения я стэйджу, какие отменяю, а какие пропускаю до следующего коммита. Прям сказка.
А я кого не спрашивал, либо пользуются консолью, либо "черепашкой" коммитят все изменения разом. Ну а bisect так же неплохо работает и через GUI в том же `SmartGit`.
Чтобы запускать своё приложение, его нужно вписать init.service.recovery.rc вместо /sbin/recovery и запускать устройство с зажатой кнопкой уменьшения громкости?! А можно как-то перезаписать подправленный нами образ `recovery.img` вместо основного `boot.img`? Чтобы не приходилось при запуске зажимать кнопку громкости.
Прошу прощения, вы правы. Что-то я зациклился не на том, представляя, что функция вызывается в каждом кадре. Как-то даже не ловко, столько букв настрочил )))
Гениально. Назвать сеть ракетных установок вдоль наших границ "абстрактной". К тому же, устанавливавшиеся во времена, когда у нас мир, дружба, жвачка. Задолго до мюнхенской речи. Задолго до Осетии или Украины.
Так, попробую с другого бока. Посмотрите, вот у вас имеется строка: SDL_Surface* image = TTF_RenderText_Solid(timerFont,writeYourName,timerColor); В ней вы создали локальную переменную, содержащую в себе указатель на структуру SDL_Surface. Структура эта создана в куче (то есть, в области динамической памяти), а не на стеке. Если бы она была создана на стеке, то строка имела бы вид: SDL_Surface image = TTF_RenderText_Solid(timerFont,writeYourName,timerColor);
Когда функция titleInscription(...)завершит своё выполнение, то локальная переменная, содержащая в себе указатель на струкруту SDL_Surface уничтожится, а вот память с этой структурой, выделенная в динамической области памяти, никуда не денется. А функция titleInscription(...) вызывается на каждом кадре, выделяя память под стркутуру SDL_Surface размером 200x50 пикселей, что должно занимать память не менее чем 200*50*3=30000 байт за кадр. А если кадров 60 в секунду, то в секунду утечка памяти на 30 килобайт. За час работы программы утекает не менее 105 мегабайт памяти только на выводе FPS на экран. Чтобы этого безобразия не было, нужно в функции titleInscription(...) после строки
Вот только SDL_Surface* image -- это не локальная переменная, а указатель на область памяти, выделенный внутри функции TTF_RenderText_Solid. И чтобы не было утечки памяти, необходимо не забывать вызывать метод SDL_FreeSurface(image).
Наоборот. Игры делать становится проще. К движку идёт огромная бесплатная библиотека фотограмметрических 3д моделей Quixel Megascan, благодаря которым создавать детализированные уровни получается гораздо быстрее и качественнее, чем моделить и рисовать текстуры вручную. Система ландшафта проста и понятна. Генератор моделей MetaHuman позволяет сильно экономить на создании людей. Атмосферные эффекты, облака и прочее, всё из коробки. Бесплатный движок, заточенный на создание открытых миров. Порог входа сильно снижается, цена становится ниже.
И эпики позиционируют движок не только для игр, но и для рекламы, презентаций, фильмов, архитектуры, экранов для концертов или интерактивная графика для TV-эфира. Не так давно выходил короткий анимационный фильм на их движке, сделанный компанией Weta Digital (известная по таким фильмам как Властелин колец, Хоббит, Аватар, Люди Икс, Железный человек, Планета обезьян и д.р.). Так что, целевая аудитория сильно расширилась.
Почему? Я, беря справки из одних госучреждений и относя их в другие госучреждения, всегда думал: «когда же эта бессмысленность закончится и эти ведомства научатся взаимодействовать друг с другом без моего участия?» Видимо, пришло время. Это же хорошо.
Не нужно никого сжигать. С++ для меня язык относительно новый, и примеры с умными указателями и int воспринялись просто как сферический пример, а не руководство к действию.
С коллегами (плюсисты со стажем) листали её, обсуждали, всем понравилась. Доволен покупкой и рекомендую другим, кто хочет дефрагментировать свои хаотичные знания плюсов.
У вас здесь нет самого главного: как вас отпустила УК. В нашем городе (Курск) от УК так просто не уйти. И по голове старшим по дому кто-то бьёт, и по голове директору конкурирующей УК, чтоб не лез, и машины кто-то обливает растворителем краски. Ну и бесконечные липовые голосования по возврату в УК. И суды, суды, суды. Порой кажущиеся просто бессмысленными.
В теории должно быть, на практике все на это забивают. Все бюллетени голосования жильцов заполнены одной рукой и одной ручкой, жители пишут заявление, что это не они -- ГЖИ по бую. Максимум вычеркнут фамилии жильцов, написавших заявление, из общего числа проголосовавших и всё. И искать никого не будут. Подчерковедческие экспертизы с поиском "виновника" затягиваются на годы, за это время рисуются новые бюллетени, и так по кругу.
Были даже случаи подделки документов для суда (юристами была изменена площадь дома на ГИС ЖКХ и выдана соответствующая справка, благодаря чему не был набран необходимый процент) -- тоже никакого наказания. Прокуратура за 10 дней не смогла связаться с виновником, дело закрывает, 306 статья УК РФ не возбуждается.
Практика нашей борьбы с УК показала, что законы у нас может и суровые, но очень необязательные.
Я с января только нейронную музыку и слушаю. То, что нравится мне, а не то, что звучит изо всех утюгов.
Вил графика неудачный, скорее всего. Кажется, что рост начался в 21 году, хотя прибыль за 21 год наверняка посчитана уже после завершения года (то есть, в начале 22).
Кроме полигональных сеток можно описать фигуру математически. Сфера -- объём, в каждой точки которого расстояние до центра не превышают значение радиуса. Куб или прямоугольник -- все точки, которые не превышают заданные мин/макс интервалы. Так же можно описать математически множество других простых объёмных фигур, в том числе образованных из отрезков или кривых путём их выдавливания или вращения.
Более сложные формы получаются из простых комбинацией математических операций, таких как булевы сложения, вычитания.
Преимущество по сравнению с полигональным моделированием:
описание занимает очень мало данных (можно хоть от руки на листочке параметры точного чертежа нарисовать);
любой параметр можно поправить в любой момент времени. У полигональных моделей если убита история, то у меша (если изменились какие-то начальные размеры) придётся очень много времени мотать туда-сюда эти вершины, объединять, разъединять, стараться сохранять общие плоскости в пространстве;
возможность конвертировать в полигоны с любой точностью. Хоть low-poly, хоть многомиллионные меши;
удобны для расчёта движения CNC. Рассчитать, находится ли точка внутри такого математического объекта или нет проще, чем перебирать миллионы полигонов;
при математическом моделировании тела всегда замкнуты, полигоны же могут иметь дыры в поверхности, не позволяя использовать для той же печати на 3д принтере.
Из-за всех этих преимуществ именно они используются инженерами и конструкторами и называются твердотельным моделированием.
Параметрическая, твердотельная.
Ну, тут дело не просто в qt-based ui. Поглядите на нижнюю панель с Time Slider. Он 1 в 1 как в майке, как по расположению виджетов, так и их размеру. Видимо, сознательно такое сделано, чтобы профессионалы чувствовали себя "как дома". Молодцы.
А для меня сильной стороной является аналог интерактивного добавления (
git add -i
), когда прямо в окне diff раскидываю, какие блоки или строки изменения я стэйджу, какие отменяю, а какие пропускаю до следующего коммита. Прям сказка.А я кого не спрашивал, либо пользуются консолью, либо "черепашкой" коммитят все изменения разом.
Ну а bisect так же неплохо работает и через GUI в том же `SmartGit`.
Уже лет 10 не могу представить свою разработку без
SmartGit
. Пробовал другие клиенты, но SmartGit для меня удобнее всего.Чтобы запускать своё приложение, его нужно вписать
init.service.recovery.rc
вместо/sbin/recovery и запускать устройство с зажатой кнопкой уменьшения громкости?!
А можно как-то перезаписать подправленный нами образ `recovery.img` вместо основного `boot.img`? Чтобы не приходилось при запуске зажимать кнопку громкости.
Прошу прощения, вы правы. Что-то я зациклился не на том, представляя, что функция вызывается в каждом кадре. Как-то даже не ловко, столько букв настрочил )))
Гениально. Назвать сеть ракетных установок вдоль наших границ "абстрактной". К тому же, устанавливавшиеся во времена, когда у нас мир, дружба, жвачка. Задолго до мюнхенской речи. Задолго до Осетии или Украины.
Так, попробую с другого бока.
Посмотрите, вот у вас имеется строка:
SDL_Surface* image = TTF_RenderText_Solid(timerFont,writeYourName,timerColor);
В ней вы создали локальную переменную, содержащую в себе указатель на структуру
SDL_Surface
. Структура эта создана в куче (то есть, в области динамической памяти), а не на стеке. Если бы она была создана на стеке, то строка имела бы вид:SDL_Surface image = TTF_RenderText_Solid(timerFont,writeYourName,timerColor);
Когда функция
titleInscription(...)
завершит своё выполнение, то локальная переменная, содержащая в себе указатель на струкрутуSDL_Surface
уничтожится, а вот память с этой структурой, выделенная в динамической области памяти, никуда не денется.А функция
titleInscription(...)
вызывается на каждом кадре, выделяя память под стркутуруSDL_Surface
размером 200x50 пикселей, что должно занимать память не менее чем 200*50*3=30000 байт за кадр. А если кадров 60 в секунду, то в секунду утечка памяти на 30 килобайт. За час работы программы утекает не менее 105 мегабайт памяти только на выводе FPS на экран.Чтобы этого безобразия не было, нужно в функции
titleInscription(...)
после строкиSDL_Texture* groundTexture = SDL_CreateTextureFromSurface(gRenderer,image);
вызвать метод
SDL_FreeSurface(image);
Вот только SDL_Surface* image -- это не локальная переменная, а указатель на область памяти, выделенный внутри функции TTF_RenderText_Solid.
И чтобы не было утечки памяти, необходимо не забывать вызывать метод SDL_FreeSurface(image).
Извините, но не могли бы рассказать, почему нельзя использовать struct?
В первом методе
не нужно ли удалять SDL_Surface* image после конвертации его в текстуру?
И эпики позиционируют движок не только для игр, но и для рекламы, презентаций, фильмов, архитектуры, экранов для концертов или интерактивная графика для TV-эфира. Не так давно выходил короткий анимационный фильм на их движке, сделанный компанией Weta Digital (известная по таким фильмам как Властелин колец, Хоббит, Аватар, Люди Икс, Железный человек, Планета обезьян и д.р.). Так что, целевая аудитория сильно расширилась.
С коллегами (плюсисты со стажем) листали её, обсуждали, всем понравилась. Доволен покупкой и рекомендую другим, кто хочет дефрагментировать свои хаотичные знания плюсов.