小编too*_*inX的帖子

如何删除emacs中的重复行

我有一个有很多行的文本,我的问题是如何删除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)

emacs elisp

21
推荐指数
3
解决办法
6561
查看次数

体绘制(使用glsl)和光线投射算法

我正在使用光线投射算法学习体绘制.我在这里找到了一个很好的演示和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)

opengl glsl demo raycasting volume-rendering

18
推荐指数
1
解决办法
2万
查看次数

如何在glsl中使用#include支持ARB_shading_language_include

我不想使用#include宏来在glsl中包含着色器文件,我听说有一个ARB_shading_language_include 扩展支持#include宏.有没有人可以给我一个显示如何使用#include宏的代码片段?

opengl glsl

18
推荐指数
2
解决办法
1万
查看次数

帧缓冲和在opengl中使用着色器

我对framebuffers非常困惑.我想要做的是使用附加了多个纹理的帧缓冲区,填充每个纹理,然后使用着色器组合(混合)所有纹理以创建新输出.听起来很容易?是的,这也是我的想法,但我不明白.

如何将当前绑定的纹理传递给着色器?

opengl shader framebuffer

5
推荐指数
1
解决办法
3522
查看次数

如何将yasnippet作为自动完成后端?

我想把它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 …

emacs autocomplete yasnippet

5
推荐指数
1
解决办法
2795
查看次数

重新排列Emacs中的文件名

我有一个批处理文件的格式同说bmp,文件名是0.bmp 1.bmp...... 99.bmp,我想更改文件名,说0.bmp99.bmp,1.bmp98.bmp等,可以在emacs的做到这一点dired-mode?我在Windows下使用emacs.

windows emacs file-rename dired

4
推荐指数
1
解决办法
103
查看次数

Linux守护程序localhost工作但不是实际的IP

我现在正在学习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)

c sockets linux service daemon

3
推荐指数
1
解决办法
1632
查看次数

现代 Opengl 中已弃用的枚举列表?

当我OpenGL使用编写程序时Opengl version 4.0 core profile,我发现GL_QUADS已弃用。我在已弃用的函数中找到了一个问题和答案,但在哪里可以找到 OpenGL 4.0 中已弃用的枚举列表?

opengl enums deprecated

2
推荐指数
1
解决办法
951
查看次数

没有用于调用for_each的匹配函数

这是代码:

#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)

c++ templates overloading

2
推荐指数
1
解决办法
3768
查看次数