Google Calendar API предоставляет push-уведомления, которые позволяют отслеживать изменения в ресурсах. Вы можете использовать эту функцию для повышения производительности вашего приложения. Это позволяет устранить лишнюю сеть и вычислить затраты, связанные с ресурсами опроса, чтобы определить, изменились ли они. При изменении отслеживаемого ресурса API-интерфейс Календаря Google уведомляет ваше приложение.
blockquote>
- Зарегистрируйте домен получающего URL.
- Например, если вы планируете использовать https://example.com/notifications в качестве получаемого URL, вам необходимо зарегистрировать https://example.com . [ 114]
- Настройте получающий URL или получателя обратного вызова «Webhook».
- Это HTTPS-сервер, который обрабатывает уведомления API, которые вызываются при изменении ресурса.
- Настройте канал уведомления для каждой конечной точки ресурса, которую вы хотите просмотреть.
- Канал определяет информацию маршрутизации для уведомительных сообщений. В рамках настройки канала вы указываете конкретный URL-адрес, на который хотите получать уведомления. Всякий раз, когда ресурс канала изменяется, API Календаря Google отправляет уведомление в виде запроса POST на этот URL.
После того, как вы настроите часы, Google уведомит вас о любых изменениях, вам не нужно будет их снова вызывать.
Из этой цитаты в справочной странице , похоже, что glTexImage2D выделяет свою собственную память. Это имело бы смысл, в идеале API OpenGL будет отправлять данные для хранения на самой видеокарте (если драйверы / реализация / и т. Д. Разрешены).
В GL версии 1.1 или выше пиксели могут быть нулевым указателем. В этом случае память текстур выделяется для размещения текстуры ширина ширина и высота высота. Затем вы можете загрузить подтексты в инициализировать эту текстуру памяти. Изображение не определено, если пользователь пытается применить неинициализированную часть текстуры изображение в примитив.
Так что да, я думаю, что нет никакого вреда в освобождении памяти после того, как вы сгенерировали текстуру.
Да, после вызова 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());