An open API service indexing awesome lists of open source software.

https://github.com/parallel101/hw01

高性能并行编程与优化 - 第01讲回家作业
https://github.com/parallel101/hw01

Last synced: 5 months ago
JSON representation

高性能并行编程与优化 - 第01讲回家作业

Awesome Lists containing this project

README

        

# 高性能并行编程与优化 - 第01讲的回家作业

通过 pull request 提交作业。会批分数,但是:

没有结业证书,回家作业仅仅作为评估学习效果和巩固知识的手段,不必为分数感到紧张 :)
量力而行,只要能在本课中,学到昨天的自己不懂的知识,就是胜利,没必要和别人攀比。

- 课件:https://github.com/parallel101/course
- 录播:https://space.bilibili.com/263032155

作业提交时间不限 :) 即使完结了还想交的话我也会看的~ 不过最好在下一讲开播前完成。

- 如何开 pull request:https://zhuanlan.zhihu.com/p/51199833
- 如何设置 https 代理:https://www.jianshu.com/p/b481d2a42274

## 作业要求

在 main.cpp 中为了导出两个"美好的图像",使用了 `stb_image_write.h` 这个头文件。
他在 CMakeLists.txt 中也引用了 stbiw 这个库,然而这个库还没有被定义。

你的任务就是 **定义 stbiw 这个库**,他的内容应该包含 `stbi_write_png()` 的实现,
以及允许通过尖括号导入头文件 ``。

运用上课所学知识,尽量不修改 main.cpp 的内容,只修改 stbiw 子目录下的内容,
完成任务。最好以子模块 + 库的形式,实在不行的话直接改 main.cpp 也可以。

运行成功后,应该会在主程序同目录发现两个"美好的图像":mandel.png 和 rainbow.png

## 参考信息

stb_image_write.h 原仓库地址: https://github.com/nothings/stb

你需要在一个且仅一个 .cpp 文件定义了 `STB_IMAGE_WRITE_IMPLEMENTATION` 这个宏,
才能决定让 stbi 系列函数在这里实现。

如果你不仅完成了作业,还能解释清楚为什么 stbi 必须要这样设计,可能会给你满分!

## 采分点提示

像这样:
```cmake
target_compile_definitions(stbiw PUBLIC -DSTB_IMAGE_WRITE_IMPLEMENTATION)
```
是不行的,因为 mandel.cpp 和 rainbow.cpp 两个文件都 include 了 stb_image_write.h,
这样同一个函数会被定义两遍!