我目前正在尝试使用OpenGL superbible和http://www.learnopengl.com/进入GLSL .我想要的环境是OpenTK.
我试图将" Hello Triangle "入门级教程从learnopengl.com转换为OpenTK,它意味着使用非常简单的着色器绘制三角形,而不使用任何透视/世界/模型转换.
我的结果只是颜色缓冲,但是一个空窗口,我根本不明白我在哪里犯了错误,所以任何寻找帮助,更重要的是理解他们将非常感激.
我的OpenTK代码:
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using OpenTK;
using OpenTK.Graphics.OpenGL;
using OpenTK.Input;
namespace learnopengl.HelloTriangle
{
public class MainWindow : GameWindow
{
int _shaderId;
int _vao;
int _glbuf;
int _fragObj;
int _vertexObj;
Vector3[] _triangleVert;
public MainWindow()
: base(800,600)
{
KeyDown += MainWindow_KeyDown;
_triangleVert = new Vector3[] {
new Vector3(-0.5f, -0.5f, 0.0f),
new Vector3(0.5f, -0.5f, 0.0f),
new Vector3(-0.5f, 0.5f, 0.0f)
};
}
void MainWindow_KeyDown(object sender, KeyboardKeyEventArgs e)
{
if …Run Code Online (Sandbox Code Playgroud) 我试图给出IReadOnly对内部Collection对象的引用。这在大多数情况下效果很好,但如果我想将包含集合的字典转换为IReadOnlyDictionary包含IReadOnlyCollection.
这是一个代码示例:
var list = new List<int>();
IReadOnlyList<int> listReference = list; //works;
var dictionary = new Dictionary<int, int>();
IReadOnlyDictionary<int, int> dictionaryReference = dictionary; //works
var nestedList = new List<List<int>>();
IReadOnlyList<IReadOnlyList<int>> nestedReadOnlyListReference = nestedList; //works
var nestedDictionary = new Dictionary<int, List<int>>();
//IReadOnlyDictionary<int, IReadOnlyList<int>> nestedReadOnlyDictionaryReference = nestedDictionary; //does not work, can not implicitly convert
//current workaround
var nestedDictionaryReferenceHelper = new Dictionary<int, IReadOnlyList<int>>();
foreach (var kvpNestedDictionary in nestedDictionary)
{
nestedDictionaryReferenceHelper.Add(kvpNestedDictionary.Key, (IReadOnlyList<int>)kvpNestedDictionary.Value);
}
IReadOnlyDictionary<int, IReadOnlyList<int>> nestedReadOnlyDictionaryReference …Run Code Online (Sandbox Code Playgroud)