我有一个有很多行的文本,我的问题是如何删除emacs中的重复行?在没有外部工具的emacs或elisp包中使用该命令.
例如:
this is line a
this is line b
this is line a
Run Code Online (Sandbox Code Playgroud)
删除第3行(与第1行相同)
this is line a
this is line b
Run Code Online (Sandbox Code Playgroud) 我正在使用光线投射算法学习体绘制.我在这里找到了一个很好的演示和tuturial .但问题是我有一个ATI显卡而不是nVidia,这让我无法在演示中使用cg着色器,因此我想将cg着色器更改为glsl着色器.我已经阅读了OpenGL的红皮书(第7版),但不熟悉glsl和cg.有没有人可以帮我改变演示中的cg着色器到glsl?或者是否有任何材料可以使用光线投射进行体积渲染的最简单演示(当然在glsl中). 这是演示的cg着色器.它可以在我朋友的nVidia显卡上运行.令我困惑的是,我不知道如何将cg的入口部分翻译成glsl,例如:
struct vertex_fragment
{
float4 Position : POSITION; // For the rasterizer
float4 TexCoord : TEXCOORD0;
float4 Color : TEXCOORD1;
float4 Pos : TEXCOORD2;
};
Run Code Online (Sandbox Code Playgroud)
更何况,我可以编写一个程序将2个纹理对象与2个纹理单元绑定到着色器,前提是我在绘制屏幕时分配两个texcoord,例如
glMultiTexCoord2f(GL_TEXTURE0, 1.0, 0.0);
glMultiTexCoord2f(GL_TEXTURE1, 1.0, 0.0);
在演示中,程序将绑定到两个纹理(一个2D用于backface_buffer一个3D volume texture),但只有一个纹理单元,glMultiTexCoord3f(GL_TEXTURE1, x, y, z);我认为GL_TEXTURE1单位是用于体积纹理,但是哪一个(纹理单位)用于backface_buffer?据我所知,为了在着色器中绑定纹理obj,我必须得到一个纹理单元来绑定例如:
glLinkProgram(p);
texloc = glGetUniformLocation(p, "tex");
volume_texloc = glGetUniformLocation(p, "volume_tex");
stepsizeloc = glGetUniformLocation(p, "stepsize");
glUseProgram(p);
glUniform1i(texloc, 0);
glUniform1i(volume_texloc, 1);
glUniform1f(stepsizeloc, stepsize);
//When rendering an object with this program.
glActiveTexture(GL_TEXTURE0); …Run Code Online (Sandbox Code Playgroud) 我不想使用#include宏来在glsl中包含着色器文件,我听说有一个ARB_shading_language_include 扩展支持#include宏.有没有人可以给我一个显示如何使用#include宏的代码片段?
我对framebuffers非常困惑.我想要做的是使用附加了多个纹理的帧缓冲区,填充每个纹理,然后使用着色器组合(混合)所有纹理以创建新输出.听起来很容易?是的,这也是我的想法,但我不明白.
如何将当前绑定的纹理传递给着色器?
我想把它yasnippet作为后端auto-complete.但是,它不起作用.搜索互联网后我做的如下:获取auto-complete-yasnippet.el,在这里添加一些elisp .emacs:
(add-to-list 'load-path
"~/.emacs.d/plugins/yasnippet")
(require 'yasnippet)
(yas-global-mode 1)
(yas-minor-mode nil)
(global-set-key (kbd "M-/") 'yas/expand)
;; Auto-complete settings
;; this is the code for the auto-complete
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
(ac-config-default)
;;setup for auto-complete-yasnippet
(require 'auto-complete-yasnippet)
(setq-default ac-sources
'(
;; ac-source-semantic
ac-source-yasnippet
ac-source-abbrev
ac-source-words-in-buffer
ac-source-words-in-all-buffer
;; ac-source-imenu
ac-source-files-in-current-dir
ac-source-filename
)
)
Run Code Online (Sandbox Code Playgroud)
我看看ac-sources*scratch*中的内容C-h v,它确实有ac-source-yasnippet.有人说,版本和升级可能有问题,auto-complete以及yasnippet.怎么修好?我的emacs版本是23.3.1我的auto-complete版本是1.3.1而我的yasnippet版本是0.8.0(beta),它刚刚从github …
我有一个批处理文件的格式同说bmp,文件名是0.bmp 1.bmp...... 99.bmp,我想更改文件名,说0.bmp来99.bmp,1.bmp对98.bmp等,可以在emacs的做到这一点dired-mode?我在Windows下使用emacs.
我现在正在学习APUE.2e(UNIX®环境中的高级编程,第二版),并且已经学习了第16章网络IPC:套接字.当我运行程序ruptime(用于客户端)和ruptimed(用于服务器端)时,发生了一些奇怪的事情.客户端程序显示一个客户端命令,它与服务器通信以获取系统uptime命令的输出,服务器程序ruptimed(注意'd')接收命令,exec的uptime命令并将输出返回uptime给客户端.这两个程序编译好了,我添加ruptime 4000/tcp到文件/etc/service,这意味着服务ruptime绑定到端口4000/tcp.我在同一台机器(Ubuntu 11.04)和ruptimed第一台(当然)上运行了两个程序:
$ ./ruptimed
$ ./ruptime 127.0.0.1
21:35:48 up 13:06, 3 users, load average: 0.56, 0.85, 0.94
Run Code Online (Sandbox Code Playgroud)
输出是我所期望的.但是,当我跑:
$ ./ruptimed
$ ./ruptime 192.168.1.221
# the terminal blocks here
Run Code Online (Sandbox Code Playgroud)
IP地址192.168.1.221是机器在Intranet中的实际IP.这有什么不对?我搜索了互联网,发现它似乎需要一个shell脚本/etc/init.d/.然后我添加一个ruptime在/etc/init.d/目录中命名的文件.这里是:
#! /bin/sh
### BEGIN INIT INFO
# Provides: ruptimed
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 …Run Code Online (Sandbox Code Playgroud) 当我OpenGL使用编写程序时Opengl version 4.0 core profile,我发现GL_QUADS已弃用。我在已弃用的函数中找到了一个问题和答案,但在哪里可以找到 OpenGL 4.0 中已弃用的枚举列表?
这是代码:
#include <vector>
#include <algorithm>
#include <string>
#include <map>
#include <iostream>
using namespace std;
map<string, int> g_map;
void read_item(const pair<string, int>& p) {
g_map[p.first] += p.second;
}
void myprint(std::pair<const string, int> ci) {
cout << "first : " << ci.first << "seconde : " << ci.second << endl;
}
void myprint(int ci) {
cout << ci << endl;
}
int main()
{
string a = string("nail");
string b = string("hammer");
read_item(make_pair(a, 100));
read_item(make_pair(b, 2));
read_item(make_pair(b, 10));
read_item(make_pair(a, 200));
std::for_each(g_map.begin(), g_map.end(), …Run Code Online (Sandbox Code Playgroud) opengl ×4
emacs ×3
glsl ×2
autocomplete ×1
c ×1
c++ ×1
daemon ×1
demo ×1
deprecated ×1
dired ×1
elisp ×1
enums ×1
file-rename ×1
framebuffer ×1
linux ×1
overloading ×1
raycasting ×1
service ×1
shader ×1
sockets ×1
templates ×1
windows ×1
yasnippet ×1