小编The*_*der的帖子

来自Rust文档的餐饮哲学家不会同时吃

我正试图跟随Rust文档中的餐饮哲学家的例子.链接的最终代码:

use std::thread;
use std::sync::{Mutex, Arc};

struct Philosopher {
    name: String,
    left: usize,
    right: usize,
}

impl Philosopher {
    fn new(name: &str, left: usize, right: usize) -> Philosopher {
        Philosopher {
            name: name.to_string(),
            left: left,
            right: right,
        }
    }

    fn eat(&self, table: &Table) {
        let _left = table.forks[self.left].lock().unwrap();
        thread::sleep_ms(150);
        let _right = table.forks[self.right].lock().unwrap();

        println!("{} is eating.", self.name);

        thread::sleep_ms(1000);

        println!("{} is done eating.", self.name);
    }
}

struct Table {
    forks: Vec<Mutex<()>>,
}

fn main() {
    let table = Arc::new(Table …
Run Code Online (Sandbox Code Playgroud)

concurrency rust

7
推荐指数
1
解决办法
944
查看次数

显示STL数据时缺少面

我为ASCII STL格式编写了一个简单的解析器.当我尝试使用提供的法线渲染三角形时,生成的对象缺少许多面:

它应该是这样的:

我已经尝试过的:

  • 明确禁用背面剔除(虽然它之前不应该是活动的)
  • 确保启用深度缓冲区

这是一个重现错误的最小示例程序:

 #include <SDL2/SDL.h>
 #include <SDL2/SDL_main.h>
 #include <SDL2/SDL_render.h>
 #include <SDL2/SDL_opengl.h>

int main(int argc, char **argv) {
    SDL_Init(SDL_INIT_VIDEO);
    int screen_w=1280,screen_h=720;
    SDL_Window * win = SDL_CreateWindow("test", 20, 20, screen_w, screen_h,
            SDL_WINDOW_OPENGL);
    SDL_GLContext glcontext = SDL_GL_CreateContext(win);


    STLParser stlparser;
    std::ifstream file(".\\logo.stl");
    stlparser.parseAscii(file);
    const auto& ndata = stlparser.getNData();
    const auto& vdata = stlparser.getVData();
    std::cout << "number of facets: " << ndata.size() << std::endl;

    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);


    glMatrixMode(GL_PROJECTION | GL_MODELVIEW);
    glLoadIdentity();
    glScalef(1.f, -1.f, 1.f);
    glOrtho(0, screen_w, 0, screen_h, -screen_w, screen_w);

    glClearDepth(1.0f);
    glDepthFunc(GL_LEQUAL); …
Run Code Online (Sandbox Code Playgroud)

c++ opengl

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

标签 统计

c++ ×1

concurrency ×1

opengl ×1

rust ×1