Что происходит с пикселями после передачи их в glTexImage2D ()?

push-уведомления

Google Calendar API предоставляет push-уведомления, которые позволяют отслеживать изменения в ресурсах. Вы можете использовать эту функцию для повышения производительности вашего приложения. Это позволяет устранить лишнюю сеть и вычислить затраты, связанные с ресурсами опроса, чтобы определить, изменились ли они. При изменении отслеживаемого ресурса API-интерфейс Календаря Google уведомляет ваше приложение.

  • Зарегистрируйте домен получающего URL.
  • Например, если вы планируете использовать https://example.com/notifications в качестве получаемого URL, вам необходимо зарегистрировать https://example.com . [ 114]
  • Настройте получающий URL или получателя обратного вызова «Webhook».
  • Это HTTPS-сервер, который обрабатывает уведомления API, которые вызываются при изменении ресурса.
  • Настройте канал уведомления для каждой конечной точки ресурса, которую вы хотите просмотреть.
  • Канал определяет информацию маршрутизации для уведомительных сообщений. В рамках настройки канала вы указываете конкретный URL-адрес, на который хотите получать уведомления. Всякий раз, когда ресурс канала изменяется, API Календаря Google отправляет уведомление в виде запроса POST на этот URL.
blockquote>

После того, как вы настроите часы, Google уведомит вас о любых изменениях, вам не нужно будет их снова вызывать.

10
задан Nick Bolton 19 April 2009 в 22:42
поделиться

2 ответа

Из этой цитаты в справочной странице , похоже, что glTexImage2D выделяет свою собственную память. Это имело бы смысл, в идеале API OpenGL будет отправлять данные для хранения на самой видеокарте (если драйверы / реализация / и т. Д. Разрешены).

В GL версии 1.1 или выше пиксели могут быть нулевым указателем. В этом случае память текстур выделяется для размещения текстуры ширина ширина и высота высота. Затем вы можете загрузить подтексты в инициализировать эту текстуру памяти. Изображение не определено, если пользователь пытается применить неинициализированную часть текстуры изображение в примитив.

Так что да, я думаю, что нет никакого вреда в освобождении памяти после того, как вы сгенерировали текстуру.

9
ответ дан 4 December 2019 в 01:32
поделиться

Да, после вызова geTexImage2D () можно безопасно сбросить данные, которые вы перешел на это. На самом деле, если вы этого не сделаете, у вас будет утечка памяти, как в следующем коде:

int *getPixels()
{
    int *pixels = new int[10];
    pixels[0] = 1;
    pixels[1] = 0;
    pixels[1] = 1;
    // etc...
}

glTexImage2D(..., getPixels());

Вы передаете указатель на буфер для вызова, но затем указатель теряется и, скорее всего, утечки. Что вам нужно сделать, это сохранить и удалить его после повторного вызова:

int *pbuf = getPixels();
glTexImage2D(..., pbuf);
delete[] pbuf;

поочередно, если текстура имеет постоянный размер, вы можете передать указатель на массив, находящийся в стеке:

{
    int buf[10];
    ...
    glTexImage2D(..., pbuf);
}

Наконец, если вы не нужно беспокоиться об указателях и массивах, вы можете использовать STL:

vector<int> buf;
fillPixels(buf);
getTexImage2D(..., buf.begin());
1
ответ дан 4 December 2019 в 01:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: