FreeType将仅渲染几秒钟

时间:2018-11-15 01:27:55

标签: c++ opengl glsl freetype

所以我一直在尝试对我的2D引擎实施Freetype,并且实际上仅渲染文本一秒钟或更短的时间,然后它消失了,已经确保仍然调用了render函数,不知道该怎么办错误。此外,它仅在Update函数上呈现文本,当我尝试在Render上呈现时,它不会弹出(这让我发疯,功能被一个接一个地调用,而没有任何修改)。

示例:

isOpaque

TextRenderer.cpp:

extension FooViewController: UITextViewDelegate {
    private func updateSelection(selectedIndex indexPath: IndexPath) {
        if let oldSelected = self.table.indexPathForSelectedRow {
            tableDelegate.tableView(table, didDeselectRowAt: oldSelected)
        }
        tableDelegate.tableView(table, didSelectRowAt: indexPath)
    }

    func textViewShouldBeginEditing(_ textView: UITextView) -> Bool {
        guard let rowCell = getParentCell(forTextView: textView), // loops through table row cells
            !rowCell.isSelected,
            let indexPath = self.table.indexPath(for: rowCell)
            else { return true }

        updateSelection(selectedIndex: indexPath)
        return false
    }

1 个答案:

答案 0 :(得分:1)

@Aether我已经让您的引擎开始运转了,虽然我还没有答案为什么会发生这种情况(还没有仔细看过),但我可以告诉您,如果您不这样做,则不会发生此问题t更新相机。我对此的直觉是,您已经移动了相机或文字,使其不再可见,但我希望在可能的情况下添加更多内容。

void Sandbox::Init() {

    AETHER_CLIENT_TRACE("Initialized LifeSandbox");
    GameManager::GameSpeed = 1;

    Resources::LoadTexture("textures/default.png", "default");
    Resources::LoadTexture("textures/emoji.png", "emoji");
    Resources::LoadShader("shaders/spriteVertexShader.bin", "shaders/spriteFragmentShader.bin", "sprite");
    Renderer = new Renderer2D(Resources::GetShader("sprite"));
    Text->Load("fonts/arial.TTF", 24);
    MainCamera = new Camera();  
}

void Sandbox::Update() 
{       
    //MainCamera->Update(iVec2(0.0f, 0.0f));
}

void Sandbox::Render() 
{
  //Works fine
  Text->RenderText("Press ENTER to start", 0, 0, 1.0, iVec3(2.0f));
}

enter image description here