Ошибка перегрузки функции Cinder

В этом простом примере cinder (из введения в cinder - http://libcinder.org/docs/v0.8.4/hello_cinder.html) я получаю эту ошибку компиляции:

myImage = gl::Texture( loadImage( loadResource( "image.jpg" ) ) );

Ошибка 1 ошибка C2661: "cinder::app::App::loadResource": ни одна перегруженная функция не принимает 1 аргумент

Однако в документации сказано:

DataSourceRef cinder::app::loadResource (   const std::string &     macPath  )

Есть идеи?

2 ответа

Решение

Вы имеете в виду ту же функцию:

cinder::app::App::loadResoure
cinder::app::loadResource

Никогда не использовал эту библиотеку, но doc говорит, что первой функции нужно больше параметров:

http://libcinder.org/docs/v0.8.4/classcinder_1_1app_1_1_app.html

static DataSourceRef cinder::app::App::loadResource (   
       const std::string &  macPath,
       int  mswID,
       const std::string &  mswType  
)   

Вам лучше попробовать загрузить как ресурс, а не ресурс:

    gl::TextureRef      texImagen;
    texImagen = gl::Texture::create( loadImage( getAssetPath( "image.jpg" ) ) );

куда image.jpg находится в папке активов. Активы загружаются во время выполнения из этой папки ресурсов. Эта папка может быть на одном уровне программы или до трех выше.

Ресурсы находятся в папках ресурсов и копируются на этапе компиляции и упаковываются вместе с приложением или исполняемым файлом.

Чтобы использовать заголовок include ресурсов

   #include "Resources.h"

который содержит что-то вроде этого

#pragma once
#include "cinder/CinderResources.h"
#define MY_IMAGE       CINDER_RESOURCE( ../resources/, image.jpg, 1, IMAGE )

Тогда вы можете загрузить его

texImagen = gl::Texture::create( loadResource( MY_IMAGE ) );

Помните, что если вы находитесь в Xcode, ваше изображение должно быть добавлено в ваш проект, просто перетащите его в дерево проекта.

Другие вопросы по тегам