首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式设置GLWpfControl?

如何以编程方式设置GLWpfControl?
EN

Stack Overflow用户
提问于 2022-07-21 03:09:11
回答 1查看 246关注 0票数 1

我一直在使用OpenTK,并且很好地遵循了示例/教程。

我真的想让OpenGL呈现在窗口的更小的部分,所以我一直在尝试使用GLWpfControl,我想在没有XAML的情况下这样做,但我无法正常运行它。

我一直试图让它从控制台模板通过dotnet运行。这是我的代码:

代码语言:javascript
运行
复制
using System;
using System.Windows;
using OpenTK.Wpf;
using OpenTK.Graphics.OpenGL;
 
namespace Test {
    public class MyWindow : Window {
        
        [STAThread]
        public static void Main() {
            Application app = new Application();
            app.Run(new MyWindow());
        }

        public MyWindow() {
            GLWpfControl wpfControl = new GLWpfControl();
            wpfControl.Render += GLWpfOnRender;
    
            this.Content = wpfControl;

            var settings = new GLWpfControlSettings();
            wpfControl.Start(settings);
        }

        void GLWpfOnRender(TimeSpan delta) {
            Console.WriteLine(delta.TotalMilliseconds);
            GL.ClearColor(1.0f, 0.0f, 0.0f, 1.0f);
            GL.Clear(ClearBufferMask.ColorBufferBit); 
        }
    }
}

我预计控件将呈现红色,但它是黑色的。如果没有调用Start(),它就不是黑色的,并且在调用Start()之后会反复调用GLWpfOnRender。

下面是.csproj文件:

代码语言:javascript
运行
复制
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0-windows</TargetFramework>
    <RootNamespace>test_2</RootNamespace>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <UseWPF>true</UseWPF>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="OpenTK" Version="4.7.4" />
    <PackageReference Include="OpenTK.GLWpfControl" Version="4.2.2" />
  </ItemGroup>

</Project>

我想我错过了在使用XAML时调用InitializeComponent()时可能会做的事情。我读了很多书,但我很困惑。

下面是我要复制的内容的链接:https://github.com/opentk/GLWpfControl/tree/aefe945f65e4659bd6f9f82083a4a746c2fb03fc/src

编辑:我继承和覆盖了GLWpfControl,并且能够使用DrawingContext打印文本和做各种事情。所以GL没有因为任何原因和控制一起工作?

EN

回答 1

Stack Overflow用户

发布于 2022-07-22 01:12:12

好吧我让它起作用了。事实证明,有一些已知的问题,两个显卡/英特尔高清图形。我的GPU坏了。启用后,就可以正常工作了。首先,我没有检查github上的问题选项卡,这是我自己的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73060252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档