<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Furrain的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Furrain</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Furrain]]></copyright><item><title><![CDATA[Spring学习记录4]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/111145242</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/111145242</guid><author>Furrain</author><pubDate>Fri, 18 Dec 2020 00:22:38 +0800</pubDate><description><![CDATA[Spring学习记录4
Aop开启
什么事aop

1 面向切面(f方面)编程,利用AOP可以对业务逻辑的各个部分进行隔离，从而使得业务逻辑各部分之间的耦合度降低，提高程序的可重用性，同时提高了开发的效率。
个人理解就是在不修改原来代码功能的情况下，添加新的功能模块


...]]></description><category></category></item><item><title><![CDATA[vulkan笔记_2]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/111189433</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/111189433</guid><author>Furrain</author><pubDate>Tue, 15 Dec 2020 01:47:45 +0800</pubDate><description><![CDATA[vulkan笔记_2
renderpass

在我们完成管线的创建工作之前，我们需要告诉Vulkan渲染时候使用的framebuffer帧缓冲区附件相关信息。我们需要指定多少个颜色和深度缓冲区将会被使用，指定多少个采样器被用到及在整个渲染操作中相关的内容如何处理。所有的这些信息都被封装在一个叫做 render pass 的对象中

先对需要处理的附件进行一个整体的描述，意思大致为，我准备怎么处理这个附件

在Vulkan中，用具有特定像素格式的VkImage 表示纹理(texture)和FrameBuffe]]></description><category></category></item><item><title><![CDATA[Spring学习记录3]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/111143293</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/111143293</guid><author>Furrain</author><pubDate>Sun, 13 Dec 2020 20:51:53 +0800</pubDate><description><![CDATA[Spring学习记录3
IOC基于注解
注解的作用

注解是java的特殊标记，其格式为@注解名称(属性名称=属性值,属性名称=属性值…)
注解可以作用在方方面面，如类上面，方法上面，变量(属性)上面
spring使用注解，简化xml配置

spring针对bean创建对象的注解

@Component
@Service
@Controller
@Repository
上面的四个注解功能是一样的，都可以创建对象

基于注解方式实现对象的创建
1.引入spring-aop jar包
2.开启spring组件扫]]></description><category></category></item><item><title><![CDATA[Spring学习记录2]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/111106943</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/111106943</guid><author>Furrain</author><pubDate>Sun, 13 Dec 2020 18:22:47 +0800</pubDate><description><![CDATA[Spring学习记录2
生命周期

1 通过构造器创建bean实例                                                         -创建
2 为bean的属性设置值和对其他bean方法的引用                         -DI
3 调用bean的初始化方法(需要配置初始化的方法)                       -初始化
4 bean可以使用了                                          ]]></description><category></category></item><item><title><![CDATA[Spring学习记录1]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/111087202</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/111087202</guid><author>Furrain</author><pubDate>Sun, 13 Dec 2020 02:09:12 +0800</pubDate><description><![CDATA[Spring学习记录1
1.基本例子
第一步导入导入spring的jar包，或者使用Maven引入spring依赖
第二步有一个xml配置文件如下
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p]]></description><category></category></item><item><title><![CDATA[vulkan_笔记1]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/109147522</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/109147522</guid><author>Furrain</author><pubDate>Sun, 18 Oct 2020 22:07:57 +0800</pubDate><description><![CDATA[1.物理设备

需要在物理设备中找出支持graphic和present功能的队列簇

struct QueueFamilyIndices {
	int graphicsFamily = -1;
	int presentFamily = -1;

	bool isComplete() {
		return graphicsFamily &gt;= 0 &amp;&amp; presentFamily &gt;= 0;
	}
};

	QueueFamilyIndices findQueueFamilies(V]]></description><category></category></item><item><title><![CDATA[vulkan_开启验证层]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/109143107</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/109143107</guid><author>Furrain</author><pubDate>Sun, 18 Oct 2020 12:00:58 +0800</pubDate><description><![CDATA[Vulkan 开启验证层
1.添加开关
因为在发布程序的时候，理论上不可以打开调试验证层的，所以需要添加一个开关宏
const std::vector&lt;const char*&gt; validationLayers = {
    "VK_LAYER_LUNARG_standard_validation"
};

#ifdef NDEBUG
    const bool enableValidationLayers = false;
#else
    const bool enableValida]]></description><category></category></item><item><title><![CDATA[django学习_1]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/108688374</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/108688374</guid><author>Furrain</author><pubDate>Sun, 20 Sep 2020 01:14:23 +0800</pubDate><description><![CDATA[Django学习_1
这里写目录标题Django学习_11. 准备2. 创建项目3.配置
1. 准备

环境：python django pycharm

2. 创建项目

pycharm中创建一个项目
django-admin startproject mysite(django项目名称)
python manage.py startapp website1(具体站点)

3.配置

让django识别你的站点，需要在项目的settings.py中的INSTALLED_APPS加入，如：

如果想要站点能]]></description><category></category></item><item><title><![CDATA[opengl学习6坐标变换]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/105909505</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/105909505</guid><author>Furrain</author><pubDate>Sun, 03 May 2020 21:57:32 +0800</pubDate><description><![CDATA[数学  矩阵  不多说
看https://learnopengl-cn.readthedocs.io/zh/latest/01%20Getting%20started/07%20Transformations/

]]></description><category></category></item><item><title><![CDATA[opengl学习5纹理]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/105908499</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/105908499</guid><author>Furrain</author><pubDate>Sun, 03 May 2020 21:00:52 +0800</pubDate><description><![CDATA[坐标类似这样
GLfloat vertices[] = {
//     ---- 位置 ----       ---- 颜色 ----     - 纹理坐标 -
     0.5f,  0.5f, 0.0f,   1.0f, 0.0f, 0.0f,   1.0f, 1.0f,   // 右上
     0.5f, -0.5f, 0.0f,   0.0f, 1.0f, 0.0f,   1.0f, ...]]></description><category></category></item><item><title><![CDATA[opengl学习4  编译着色器]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/105900364</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/105900364</guid><author>Furrain</author><pubDate>Sun, 03 May 2020 10:37:47 +0800</pubDate><description><![CDATA[顶点着色器编译
1.创建一个着色器对象，注意还是用ID来引用的
GLuint vertexShader;
vertexShader = glCreateShader(GL_VERTEX_SHADER);

2.下一步我们把这个着色器源码附加到着色器对象上，然后编译它：
glShaderSource(vertexShader, 1, &amp;vertexShaderSource, NULL);
g...]]></description><category></category></item><item><title><![CDATA[opengl学习3  VAO VBO EBO]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/105900246</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/105900246</guid><author>Furrain</author><pubDate>Sun, 03 May 2020 10:22:31 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/dcrmg/article/details/53556664

]]></description><category></category></item><item><title><![CDATA[opengl学习2]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/105893366</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/105893366</guid><author>Furrain</author><pubDate>Sat, 02 May 2020 18:30:54 +0800</pubDate><description><![CDATA[着色器
一般编程是顶点着色器。片段着色器。然后把这两个链接一下。
可以写成一个着色器类
#ifndef SHADER_H
#define SHADER_H

#include &lt;string&gt;
#include &lt;fstream&gt;
#include &lt;sstream&gt;
#include &lt;iostream&gt;
#include &lt;GL/glew....]]></description><category></category></item><item><title><![CDATA[opengl学习1]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/105885900</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/105885900</guid><author>Furrain</author><pubDate>Sat, 02 May 2020 04:10:47 +0800</pubDate><description><![CDATA[https://learnopengl-cn.readthedocs.io/zh/latest/01%20Getting%20started/02%20Creating%20a%20window/
学习创建一个窗口时出现的问题：
使用glew的动态库时，如果写了glewExperimental = GL_TRUE;会报错
error LNK2001: 无法解析的外部符号 glewExperimen...]]></description><category></category></item><item><title><![CDATA[glut和glfw]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/105885807</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/105885807</guid><author>Furrain</author><pubDate>Sat, 02 May 2020 02:21:24 +0800</pubDate><description><![CDATA[简单记录：
glew（The OpenGL Extension Wrangler Library）是对底层OpenGL接口的封装，可以让你的代码跨平台。
glad与glew作用相同，可以看作它的升级版。
Freeglut（OpenGL Utility Toolkit）主要用于创建OpenGL上下文、接收一些鼠标键盘事件等等。glfw（Graphics Library Framework）是Free...]]></description><category></category></item><item><title><![CDATA[Android  TabLayout + viewpager + fragment]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/105132196</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/105132196</guid><author>Furrain</author><pubDate>Fri, 27 Mar 2020 00:20:52 +0800</pubDate><description><![CDATA[简单记录一下
public void InitView(){

        final ArrayList&lt;String&gt; titleList = new ArrayList&lt;&gt;();
        titleList.add("1");
        titleList.add("2");
        titleList.add("3");
        T...]]></description><category></category></item><item><title><![CDATA[C++/Qt 单例模式]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/102880936</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/102880936</guid><author>Furrain</author><pubDate>Sun, 03 Nov 2019 11:58:27 +0800</pubDate><description><![CDATA[C++/Qt 单例模式
传统的C++单例
https://blog.youkuaiyun.com/zhanghuaichao/article/details/79459130
但是在Qt的使用过程中，有一次发生过关闭程序时，内存已经被析构了，然后重复析构报错的问题。很奇怪的错误。
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include &lt;QMainWind...]]></description><category></category></item><item><title><![CDATA[Qt -键盘事件]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/102791192</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/102791192</guid><author>Furrain</author><pubDate>Mon, 28 Oct 2019 23:54:42 +0800</pubDate><description><![CDATA[添加链接描述

]]></description><category></category></item><item><title><![CDATA[Qt -- 区分单双击事件]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/102763469</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/102763469</guid><author>Furrain</author><pubDate>Sun, 27 Oct 2019 02:33:51 +0800</pubDate><description><![CDATA[添加链接描述

]]></description><category></category></item><item><title><![CDATA[Qt -- 两种子线程]]></title><link>https://blog.youkuaiyun.com/Furrain/article/details/102763424</link><guid>https://blog.youkuaiyun.com/Furrain/article/details/102763424</guid><author>Furrain</author><pubDate>Sun, 27 Oct 2019 02:10:42 +0800</pubDate><description><![CDATA[详细请见添加链接描述
这里继承QObject的子线程为什么要用信号槽机制来使用呢，一开始我不是很理解，后来试了一下，如果直接调用那个函数的话，因为子线程本来就是要处理耗时操作的，直接调用会进入到那个函数，就执行了耗时操作，执行完才会进入下一行代码，子线程就没有意义。用信号槽的话，我们就直接发一个信号就完事了，直接进入下一行代码，达到了子线程的目的。（耗时操作应该是进入到时间循环后再执行的，main...]]></description><category></category></item></channel></rss>