Ответы пользователя по тегу C++
  • Как в Cmake папку с срр добавить целиком?

    xzripper
    @xzripper
    0xC0000005
    Используйте перебор файлов. IE:
    file(GLOB ModelsCPPS "models/*.hpp")
    Ответ написан
    5 комментариев
  • Текстура уничтожается?

    xzripper
    @xzripper Автор вопроса
    0xC0000005
    Оказывается третий аргумент tintColor в ImGui::Image окрашивает не только задний фон, но и саму текстуру, и этот tintColor я сделал прозрачным, не зная что оно делает текстуру также прозрачной. И еще сделал чтобы текстура хранилась на стеке, и теперь все заработало.
    64e5033f37eae960043831.png
    Ответ написан
    Комментировать
  • Как использовать класс объявленный в другом файле?

    xzripper
    @xzripper
    0xC0000005
    Измените extern Logger logg на Logger logg;

    Еще немного улучшил код:
    #include <iostream>
    #include <fstream>
    
    class Logger {
    public:
        Logger() {
            openFile("Logger.txt");
        }
    
        ~Logger() {
            closeFile();
        }
    
        template<class T>
        Logger& operator<<(const T& value) {
            file << value;
    
            std::cout << value;
    
            return *this;
        }
    
        Logger& operator<<(std::ostream& (*manipulator) (std::ostream&)) {
            file << manipulator;
        
            std::cout << manipulator;
    
            return *this;
        }
    
        void openFile(const char *path) {
            file.open(path);
    
            if(!file.is_open()) {
                throw std::runtime_error("Failed to open 'Logger.txt'");
            }
        }
    
        void closeFile() {
            file.close();
        }
    
    private:
        std::ofstream file;
    };
    
    Logger logger;


    logger << 6 << " is six" << std::endl;

    64e1e14d1a6e4270143548.png
    Ответ написан
    Комментировать
  • Vector не обновляется?

    xzripper
    @xzripper Автор вопроса
    0xC0000005
    Решено: функциия
    show(ObjectsBuffer objectsBuffer, int selectedObjectIndex)
    принимала аргумент - буфер, и видимо я пытался получить не копию буфера, уже копии буфера, решением было передать ссылку на буфер:
    show(std::vector<LevelObject> &buffer, int selectedObjectIndex)
    , и вызов функции стал таким:
    ObjectEditorUI::show(objectsBuffer.getReferenceBuffer(), selectedObjectIndex)
    (getReferenceBuffer вверху). Похоже я оеально упустил слишком много деталей, всем спасибо
    Ответ написан
    1 комментарий