小编use*_*007的帖子

GLSL片段位置

对不起,我会改写希望明确的问题.

在我的.cpp代码中我创建了一个四边形列表,其中一些有一个标志,在像素着色器中我检查是否设置了这个标志,如果没有设置标志,四边形会变成红色,例如,如果设置了标志,我想决定每个像素的颜色,所以如果我需要将标记四边形的一半标记为红色而另一半标记为蓝色,我可以简单地执行以下操作:

if coordinate in quad < something color = red
else colour = blue; 
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我可以将四边形的一半用蓝色染色,另一半用红色染色,或者我可以决定在哪里放置红色或在哪里放置蓝色.

想象一下,我有一个四倍的50x50像素

[FRAG]

if(quad.flag == 1)
  {    
    if(Pixel_coordinate.x<25 ) gl_fragColor = vec4(1.0, 0.0, 0.0, 1.0);
    else gl_fragColor = vec4(0.0, 1.0, 0.0, 1.0);
  }
else
  gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望带有标志设置的四边形将在每个面部获得两种颜色.我希望我现在更具体了.

谢谢.

只是添加一些我不能使用任何纹理.

好的,我现在这样做:

每个四边形有4个纹理协调(0,0),(0,1),(1,1),(1,0);

我使用以下方法启用纹理坐标:

glTexCoordPointer(2, GL_SHORT, sizeof(Vertex), BUFFER_OFFSET(sizeof(float) * 7));
Run Code Online (Sandbox Code Playgroud)

[VERT]

varying vec2 texCoord;

main()
{
    texCoord = gl_MultiTexCoord0.xy;
} 
Run Code Online (Sandbox Code Playgroud)

[FRAG]

varying vec2 texCoord;

main()
{
    float x1 = texCoord.s;
    float x2 = …
Run Code Online (Sandbox Code Playgroud)

glsl

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

智能指针自定义删除器

仅出于教育目的,我正在编写一个小型的智能指针类,此刻不是共享的,只是像C ++ 11中的unique_ptr这样的简单指针。我想要的不是一个完全正常的实现,而只是基础,创建,默认/ custom删除等等。

我一直在尝试查看Microsoft Visual Studio内部标准的实现,但确实捕获了常规实现,但是我坚持使用默认/自定义删除。所以我的问题是,实现这种功能的最佳技术是什么?

仅仅出于教育目的就可以轻松实现它,或者最终它太复杂了,因此不值得吗?

干杯

嗨,阿美

您如何看待这样的事情?

template <class _Ty>
    struct default_delete
    {

        constexpr default_delete() = default;

        void operator()(_Ty* Ptr)
        {

        std::cout << "Default Delete" << std::endl;

        }

    };


template <class T, class _Dl=default_delete<T>>
            class Smart_Pointer2_Base;

    template <class T, class _Dl>
    class Smart_Pointer2_Base
    {
        T *ptr;  // Actual pointer
        _Dl _deleter;
    public:
        // Constructor
        explicit Smart_Pointer2_Base(T *p = NULL) { ptr = p; }

        Smart_Pointer2_Base(T* p, _Dl) { prt = p; _deleter = _Dl; }

        // …
Run Code Online (Sandbox Code Playgroud)

c++ std unique-ptr c++11

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

Rapidjson文件

我正在尝试使用rapidjson创建一个json文档,但我不知道如何复制以下文档的一部分,特别是以"allocations"开头的嵌套对象,对于我做的其他元素

Value valObjectString(kStringType);
valObjectString.SetString("string");
doc.AddMember("string", valObjectString, doc.GetAllocator());
Run Code Online (Sandbox Code Playgroud)

但是"分配"和"网址"呢?

{
  "string1": "string",
  "string2": "string",
  "string3": "string",
  "string4": "string",
  "string5": "string",
  "allocations": [
    {
      "allocation": "string",
      "url": "string"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

c++ rapidjson

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

在 C++ 中使用 LibCurl 和自签名证书

我在使用 libcurl 和 ssl 时遇到问题。

如果我尝试使用以下curl命令连接到我的站点:

curl -q --cert client-2048.crt --key client-2048.key https://***** -d“用户名= &密码= ”-H“X-应用程序:curlCommandLineTest”

一切正常(顺便说一下,证书是自签名的)

我怎样才能用 libcurl 做同样的事情?

我尝试遵循 libcurl ssl 示例,但证书和私钥具有不同的扩展名,因此我不知道从哪里开始。

到目前为止,我尝试了以下(以及许多其他组合):

static const char *pCertFile = "client-2048.crt";
static const char *pCACertFile = "client-2048.pem";
static const char *pKeyName = "client-2048.key";

curl_global_init(CURL_GLOBAL_DEFAULT);

curl = curl_easy_init();
if (curl) {
    /* what call to write: */
    curl_easy_setopt(curl, CURLOPT_URL, "https://*****");
    curl_easy_setopt(curl, CURLOPT_HEADERDATA, headerfile);

        /* cert is stored PEM coded in file... */
        /* since PEM is default, we needn't set it …
Run Code Online (Sandbox Code Playgroud)

c++ libcurl

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

标签 统计

c++ ×3

c++11 ×1

glsl ×1

libcurl ×1

rapidjson ×1

std ×1

unique-ptr ×1