Windows 用户在这里。我有一个带有一堆子模块的 C++ git 项目。目录结构看起来像这样:
source
apps
myapp1
myapp2
externals
submodule1
submodule2
...
submoduleN
packages
mypackage1
mypackage2
CMakeLists.txt
Makefile
...
Run Code Online (Sandbox Code Playgroud)
这些子模块是我自己的工作,我在我的项目之间共享(因此我拥有并维护它们)。
克隆这个很简单:
git clone ssh://blabla@blabla/blabla
git submodule update --init
Run Code Online (Sandbox Code Playgroud)
一切都有效一段时间。当我更改子模块中的内容并执行 操作时git status,git 会识别出这一点并显示如下内容:
C:\blabla>git status
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
(commit or discard the untracked or modified …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个几何着色器来替换glLineWidth行为。我想绘制具有可自定义宽度的线条(现在使用统一的线条就足够了)。无论相机投影或与线条所在位置的距离如何,线条应始终具有相同的粗细。
基于大量的谷歌搜索,我想出了以下几何着色器:
#version 330
layout (lines) in;
layout (triangle_strip, max_vertices = 4) out;
uniform mat4 u_model_matrix;
uniform mat4 u_view_matrix;
uniform mat4 u_projection_matrix;
uniform float u_thickness = 4; // just a test default
void main()
{
float r = u_thickness / 2;
mat4 mv = u_view_matrix * u_model_matrix;
vec4 p1 = mv * gl_in[0].gl_Position;
vec4 p2 = mv * gl_in[1].gl_Position;
vec2 dir = normalize(p2.xy - p1.xy);
vec2 normal = vec2(dir.y, -dir.x);
vec4 offset1, offset2;
offset1 = vec4(normal * r, …Run Code Online (Sandbox Code Playgroud)