• Где ошибка в работе вершинного шейдера?

    @MarkusD Куратор тега C++
    Павел Соколов, иными словами, ты рассчитываешь что заданные тобой позиции вершин должны дойти до пиксельного шейдера без трансформации? Твой код сейчас работает иначе.
    Твоя красная точка - это и есть твой треугольник. "Debug -> Graphics -> Start Graphics Degugging", сделай захват кадра и проверь что треугольник у тебя рисуется.
    Твой треугольник рисуется в пространстве координат поверхности экрана и занимает немногим меньше одного пикселя. Сложно сказать почему твой код ведет себя так. На этот процесс влияет даже настройка вьюпорта. Среди функций устройства есть много кандидатов на то, чтобы понести ответственность за результат у тебя.
    Лог из захвата кадра может сильно помочь в понимании причин. Если по этому логу еще будет не понятно, то скинь сюда данные стадии вершинного и пиксельного шейдера из захвата. Там есть информация о том, какие координаты пришли на вход и какие - ушли на выход.
  • Где ошибка в работе вершинного шейдера?

    @MarkusD Куратор тега C++
    Павел Соколов , это не с вершинами что-то не так. Но все по порядку.
    Покажи кодом, как именно ты задаешь вершины треугольника.
  • Какие есть способы скрытого(от запущенных программ) чтения содержимого оперативной памяти в Windows 10?

    VoidVolker, принцип работы WinMemApi довольно прозрачен для целевого процесса и очень легко определяется прямо изнутри процесса. Там же, и так же легко, купируется. Но даже на этом уровне уже требуется быть подготовленным специалистом в разработке чтобы пользоваться этим API.
    BE обладает собственным драйвером уровня ядра и на более глубоком уровне отслеживает вмешательство в целевой процесс. Процесс создания контрмеры для BE от специалиста требует глубоких профессиональных навыков и понимания принципов функционирования целевой оси. Такое понимание человек может обрести только работая у майков в команде разработки оси. Разработчики BE консультируются у майков по подобным вопросам.

    В этом плане автор хочет странного. Ни знаний, ни навыков у него нет вообще, но вот сделать прям сча и чтобы работало ему очень хочется. Но вот чтобы посмотреть на топологию памяти и для обучения, ему это все не нужно. На этом основании я его вопрос и оставляю без ответа.
  • Как объединять несколько языков одном проекте?

    Keith Griffon
    C++ я решил взять из-за скорости, чтобы не тупило приложение, kotlin решил взять потому что я пишу приложение-мессанджер, а php будет серверной частью

    А почему эти, крайне существенные для вопроса, знания вскользь размещены среди всего богатства комментариев?

    Тебе стоит переформулировать свой вопрос. В нем нужно написать: что именно ты хочешь сделать, почему именно эти языки ты выбираешь, как ты хочешь использовать выбранные языки и в каких местах, по твоим соображениям, проекта должны быть точки стыковки между языками.
  • Как правильно оформить присваивание значения возвращаемого из функции C++?

    @MarkusD Куратор тега C++
    mayton2019
    Или у вас, С++ ников не делают рефакторинг?

    У кого?
  • Как правильно оформить присваивание значения возвращаемого из функции C++?

    @MarkusD Куратор тега C++
    Wataru, а вот так:
    Matrix out{ Transpose( in ).Inverse() };
    Это при том, что метод Inverse может иметь сигнатуру Matrix& Matrix::Inverse(); и возвращать *this для того чтобы позволить Method chaining для объекта матрицы.

    И ровно в это же время для кода Matrix out{ Transpose( in ) }; будет вызван не конструктор копирования, а именно конструктор перемещения, аргументом которого является Matrix&&. Такое приведение невозможно для константных объектов. А prvalue можно использовать для инициализации rvalue reference.
  • Как правильно оформить присваивание значения возвращаемого из функции C++?

    @MarkusD Куратор тега C++
    Wataru
    В него нельзя писать, но его можно читать. Оно const.

    Вот тут неправда.

    Понимание этого тонкого момента зависит от понимания категорий выражений в языке.
    Для метода Matrix Transpose(Matrix &Mat) будет возвращено локальное временное значение с категорией prvalue.
    Значения с такой категорией лишены идентичности, динамического типа и размещения. Их нельзя передать по неконстантной ссылке. Читать и писать в него можно при этом.
    Именно поэтому у автора транслятор не может найти подходящий оператор. У него и копирование сделано через оператор разрушающего копирования, и метод транспонирования может модифицировать состояние аргумента. А это - в корне неправильно.
  • Достаточно ли будет чтения cppreference для освоения STL?

    @MarkusD Куратор тега C++
    Joe Doe, ну тут ситуация от обратного. :)
    Я очень рад что мне удалось помочь, но в списке ответов у меня в профиле мне такой не нужен. Это потому что я не могу выразить весь этот текст в более удачной для решения вопроса форме. Мой комментарий - это как будто простое уточнение к уже изложенным ответам.
  • Достаточно ли будет чтения cppreference для освоения STL?

    @MarkusD Куратор тега C++
    Joe Doe, для начала, неплохая книга. С нее можно самые азы работы с языком понять.
    Отвлечемся немного от формулировки вопроса.

    Суть работы инженера состоит в оперировании документами и в решении своей рабочей задачи через связи между документами. Основным инструментом работы инженера П.О. является именно набор документов: стандарт языка, документация и т.н. пояснительная литература в виде книг и справочников. Это все означает что все вот эти источники информации с тобой теперь навсегда в твоей трудовой жизни. Бесконечно рыться в недрах cppreference при решении своей задачи - это в порядке вещей.
    Просто читать cppreference на твоем этапе можно. И этого даже хватит для составления своих представлений. Для общего понимания будет достаточно просто глазами пробежаться по разделам библиотеки и понять что в ней вообще есть. И вот когда будешь решать конкретную задачу, ее подзадачи должны у тебя начать встречаться с известными тебе элементами стандартной библиотеки. В этот момент уже можно идти на cppreference и прямо детально читать контейнеры, алгоритмы, черты, конкурентность и так далее.

    С беглым обзором STL тебе еще поможет самое начало вот этой книги. Сразу сходу углубляться в нее не стоит, там описывается довольно много глубоких подробностей языка. Или, вот еще книга, по которой почти 20 лет назад учился я. Лучше тоже только самое начало затронуть.
  • Достаточно ли будет чтения cppreference для освоения STL?

    @MarkusD Куратор тега C++
    Joe Doe , а название книги подскажешь?
  • Как избавится от постоянного индексирования файлов движка в Rider for ue?

    SlimShhady
    Здравствуйте!

    П3.4 регламента работы сервиса: Вопрос и его описание не должны содержать приветствий и прочих «лирических отступлений».

    подскажите можно ли как-то избавится от частого индексирования файлов движка?

    П2.3 регламента: Публикация вопросов, компетентно ответить на которые могут только представители конкретной организации, неизбежно приводит к провокации нарушений п. 3.4, 5.14 - 5.17 правил данного Сервиса.
  • Конструктор не создает переменную внутри класса. что делать?

    @MarkusD Куратор тега C++
    artempawww, да всё у тебя в коде не так.
    int massive[] = {1,2,3}; - опиши словами, что ты хотел этой строчкой сделать и что эта строчка делает на самом деле?
    cout << this->massive; - аналогично, что ты хотел сделать и что эта строчка делает на самом деле? Дополнительно, откуда у this должно появиться поле massive и что такое в этом месте this?
  • Зачем нужен отдельный синтаксис для препроцессора?

    @MarkusD Куратор тега C++
    Марат Нагаев, для инженера ПО, и программиста в частности, не существует занудства. Для инженера ПО существуют только стандарты используемых им инструментов и разные уровни экспертизы в этих стандартах.
    И если для тебя человек с большей экспертизой в стандарте инструмента C++ является занудой, я порекомендую тебе пересмотреть свою систему ценностей. Ты ошибаешься очень сильно. :)
    Но тем не менее, я тебя понял в некоторой мере. Ответ дам завтра. Но он тебе не понравится, хоть и будет полностью решать твой вопрос.
  • Зачем нужен отдельный синтаксис для препроцессора?

    @MarkusD Куратор тега C++
    Марат Нагаев, все верно, в это же время #if и не работает на стадии компиляции кода.
    В этом плане я тебя совсем не понимаю. Препроцессор работает до стадии компиляции и работает он с совершенно другим контентом. Но ты рассуждаешь о стадии компиляции, на которой работают конструкции constexpr и consteval.
    Поэтому я пока не могу считать что ты ответил на мой вопрос. Про препроцессор сейчас не говорим, сейчас говорим только про constexpr и consteval. Чем же они тебя не устроили? Почему тебе нужно что-то другое, а не то что уже есть?
    Мне нужен твой ответ, каким бы он ни был. Думаю, после твоего ответа я смогу дать уже свой ответ на твой вопрос.
  • Зачем нужен отдельный синтаксис для препроцессора?

    @MarkusD Куратор тега C++
    Марат Нагаев,
    я хотел что-то вроде compiled-time, но это слишком громоздко

    А чем тебя constexpr[?] и consteval[?] не устроили?
  • Зачем нужен отдельный синтаксис для препроцессора?

    @MarkusD Куратор тега C++
    Марат Нагаев
    compiled это предлагаемый оператор для задания того, что код выполняется только на этапе компиляции

    Название уже сразу очень плохо выбрано. Слово переводится как "Собранный" и говорит о том, что код уже является собранным. В контексте, что код уже собран, семантика времени компиляции уже не прослеживается. Даже наоборот, под этим словом нужно тогда писать вообще весь код, который должен попасть в результирующий бинарник.

    Между тем, чем твое compiled должно отличаться от constexpr[?] и consteval[?] ?
  • Как сделать простое окно Vulkan с отображением какого либо примитива?

    @MarkusD Куратор тега C++
    Вадим Ушаков, ты ведь рассмотрел расширение файла с примером?
    У тебя, на выбор, было не больше двух догадок: или этот код написан на C99 или более новом, или этот код написан на C++20. И ответ очевиден.
    Designated Initializer в C++ не поддерживается до 20го стандарта. Тебе достаточно собирать этот пример как код C.
    В ином случае ты можешь начать переделку этого кода в подходящий тебе стандарт C++ с исправления всех подобных ошибок.
  • Как сделать простое окно Vulkan с отображением какого либо примитива?

    @MarkusD Куратор тега C++
    Вадим Ушаков, тебе недостаточно исходного кода примера прямо из репозитория GLFW?
    На gamedev.ru все статьи по вулкану тоже с исходниками.
  • Где можно найти курс по разработке 3д игры на c++ и vulkan?

    @MarkusD Куратор тега C++
    ViT93, Да, этого уже будет достаточно. Начиная с понимания как выводить треугольник между GL и DX разница становится только формальная.
    Дело в том, что многие люди, выбирая по тем или иным причинам OpenGL, все равно отходят от его процедурного подхода, оборачивая код вызовов GL в объекты с методами.
    При переходе на вулкан этот момент может сыграть большую роль. Вулкан не является чисто процедурным. Его API в некоторой степени реализует объектный подход.